(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」引数を削除しようとしましたが、役に立ちませんでした。このコードの問題点は何ですか?