J'essaye de: gen-class a fn qui prend un tableau 2D de doubles en entrée. J'ai déjà vu le poste et la solution here concernant un sujet similaire, mais je suis toujours incapable de produire une solution de travail.Clojure's: gen-class et double array
(ns gui.heatmap
(:gen-class
:name gui.Heatmap
:methods [[heat-map2 ["[[D"] org.jfree.chart.JFreeChart]]))
(defn foo [dbl-array]
...)
J'utilise le "[[D"
basé sur l'utilisation type
sur mon entrée. Cela compile bien dans un fichier .class.
Maintenant, quand je passe à un autre fichier .clj, j'ai ce qui suit.
(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>)))))
Quand j'appelle bar
de la rempl, je reçois l'erreur suivante:
java.lang.IllegalArgumentException: Aucun champ correspondant trouvé: heat_map2 pour la classe [[D
Toutes les pensées ?
Si je rendais 'foo' static (donc' (defn^{: static true} -foo ...) '), devrais-je appeler' foo' par '(Heatmap/-foo (into-array) .))? –
Eh bien, même sans être statique, on me dit que je suis incapable de résoudre le nom de classe Heatmap, en dépit du fait de pouvoir voir qu'il a été généré. –
J'ai mis à jour l'exemple. Il y avait un autre problème avec la clause d'importation. J'ai aussi ajouté le correctif de dbyrne pour le préfixe de la fonction. – kotarak