Я пытаюсь: gen-class a fn, который принимает двумерный массив парных разрядов в качестве входных данных. Я уже видел сообщение и решение here относительно аналогичной темы, но я все еще не могу создать рабочее решение.Clojure's: gen-class и double arrays
(ns gui.heatmap
(:gen-class
:name gui.Heatmap
:methods [[heat-map2 ["[[D"] org.jfree.chart.JFreeChart]]))
(defn foo [dbl-array]
...)
Я использую "[[D"
основанный на использовании type
на моем входе. Это компилируется в файл .class.
Теперь, когда я перехожу в другой .clj-файл, у меня есть следующее.
(ns ...
(import (gui.Heatmap)))
(defn bar [args]
...
(.foo
(into-array
(vector
(double-array <list of numbers>)
(double-array <list of numbers>)
(double-array <list of numbers>)))))
Когда я называю bar
из РЕПЛ, я получаю следующее сообщение об ошибке:
java.lang.IllegalArgumentException: Нет поля соответствия найдено: heat_map2 для класса [[D
Любые мысли ?
Если я создал 'foo' static (so' (defn^{: static true} -foo ...) '), я бы тогда позвонил' foo' by '(Heatmap/-foo (in-array .. .)) '? –
Ну, даже если это не статично, мне говорят, что я не могу разрешить имя класса Heatmap, несмотря на то, что вижу, что он был сгенерирован. –
Я обновил пример. Возникла еще одна проблема с предложением импорта. Я также добавил исправление dbyrne для префикса функции. – kotarak