【发布时间】:2010-09-10 22:12:13
【问题描述】:
我知道 clojure/java 互操作的基础知识:从 clojure 调用 java,反之亦然。但是,我无法将类型化集合从 clojure 返回到 java。我试图从调用clojure的java代码中看到List<TypedObject>这种性质的东西。
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 中编写一段代码,例如可以在 eclipse 中获得适当的智能感知/代码完成(即:createListofTypedObjects() returns List<TypedObject>)。
【问题讨论】:
-
一个调用 clojure 的 java 代码的简短示例真的可以帮助我理解这个:)
-
感谢 Alex 和 Stuart 的回答。它们很有意义,但不是我想要的。希望我的问题现在不那么模棱两可了。