我知道 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] ????])
让我们考虑一下我正在使用 clojure 编写一个 API,该 API 将作为 jar 文件分发,以便从 java 中使用。我的问题真的是如何通过什么来代替 ???? AOT 的 :gen-class 上面的问号,以便程序员使用我的 api 在 java 中编写一段代码,createListofTypedObjects() returns List<TypedObject>
例如,可以从 eclipse 中获得适当的智能感知/代码完成(即:)。