Conozco los conceptos básicos de la interoperabilidad de clojure/java: llamar a java desde clojure y viceversa. Sin embargo, no pude devolver una colección mecanografiada de clojure a java. Estoy tratando de ver algo de esa naturaleza List<TypedObject>
del código java que está llamando a clojure.¿Cómo pasar una colección tipeada de clojure a 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] ????])
Consideremos que estoy escribiendo una API usando clojure, que ha de ser distribuido como un archivo JAR, para ser utilizado desde java. Mi pregunta era realmente ¿qué pasar en lugar de ???? preguntas marca arriba dentro de: gen-class para AOT, de modo que un programador que escribe un fragmento de código en java usando mi api, puede tener la terminación intellisense/código apropiada (es decir: createListofTypedObjects() returns List<TypedObject>
) desde eclipse por ejemplo.
un pequeño ejemplo del código java que llama a clojure realmente me ayudaría a responder esto :) –
Gracias Alex y Stuart por tus respuestas. Tienen perfecto sentido, pero no exactamente lo que estaba buscando. Con suerte, mi pregunta ahora es menos ambigua. – user258030