я определил следующие MyCache.cljClojure поколения класса генерироваться классы призывание вопрос
(ns abcd.MyCache
(:gen-class
:name "abcd.MyCache"
:init "init"
:constructors { [java.text.DateFormat][] }
:methods [ [now [] void] [myformat [long] String] ]
:state "state"
:main false))
(defn -init[format]
([[] (atom {:format format})]))
(defn -now[this] ((:format @(.state this)) (System/currentTimeMillis)))
(defn -myformat[this time]
((:format @(.state this) (new java.util.Date time))))
Я составил вышеуказанный файл, используя (компилировать «abcd.MyCache) успешно.
Когда я пытаюсь использовать сгенерированные классы, как показано ниже. Я получаю ошибки. Пожалуйста помоги.
user=> (new abcd.MyCache (new java.text.SimpleDateFormat "mmDDyyyy"))
IllegalArgumentException Key must be integer clojure.lang.APersistentVector.invoke (APersistentVector.java:265)
Что вы думаете, что это делать? ([[] (atom {: format format})]) – Chiron