【发布时间】:2012-06-20 10:27:10
【问题描述】:
(ns lol.test
(:gen-class
:name lol.test
:methods [[createHashMap [String] Java.util.HashMap]])
(:import [java.util HashMap]))
(defn -createHashMap [this s]
(HashMap. (assoc {} s "test")))
我正在尝试从 java 调用 clojure 函数,为此我创建了这个文件,它可以完美地用 lein 编译,我通过调用“lein uberjar”来创建一个 jar 文件。
现在的问题是,当我像这样从 java 调用它时:
lol.test l = new lol.test();
l.createhashMap("test");
它抛出一个 ArityException
Wrong number of args (2) passed to
我尝试从 clojure 代码中删除“this”参数,但没有帮助。这段代码有什么问题?
【问题讨论】:
-
您的返回类型是什么?应该是
java.util.HashMap?