Java コンストラクターをファーストクラスの Clojure 関数として使用したいと考えています。私のユースケースは、一連の文字列を、単一の文字列を持つコンストラクターを持つ一連の Java オブジェクトに変換することです。
単純な Java オブジェクト:
public class Foo {
public Foo(String aString){
// initialize the Foo object from aString
}
}
そしてClojureで私はこれをしたい:
(defn make-foo (memfn Foo. a-string))
(apply make-foo '("one" "two" "shoe"))
適用すると、文字列から作成された Foo オブジェクトのリストが返されるはずですが、次のようになります。
IllegalArgumentException No matching method found: org.apache.hadoop.io.Text. for class java.lang.String clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:53)