clojure と Java の相互運用の基本を知っています。つまり、clojure から Java を呼び出したり、その逆を行ったりします。ただし、型付きコレクションを clojure から Java に返すことはできませんでした。List<TypedObject>
clojureを呼び出しているJavaコードからその性質の何かを見ようとしています。
Java Object:
public class TypedObject {
private OtherType1 _prop1;
public OtherType1 getProp1() {
return _prop1;
}
public void setProp1(OtherType1 prop1) {
_prop1 = prop1;
}
}
CLojure method:
(defn -createListOfTypedObjects
"Creates and returns a list of TypedObjects"
[input]
;Do work here to create and return list of TypedObjects
[typedObj1, typedObj2, typedObj3])
(:gen-class
:name some.namespace
:methods [createListofTypedObjects[String] ????])
jarファイルとして配布され、Javaから使用されるように、clojureを使用してAPIを作成しているとします。私の質問は、???? の代わりに何を渡すかということでした。上記の質問マークは AOT の :gen-class 内にあるため、プログラマーは私の API を使用して Java でコードを記述し、createListofTypedObjects() returns List<TypedObject>
たとえば Eclipse 内から適切なインテリセンス/コード補完 (つまり: ) を使用できます。