Tôi biết những điều cơ bản về clojure/java interop: gọi java từ clojure và ngược lại. Tuy nhiên, tôi không thể trả lại một bộ sưu tập đã nhập từ clojure sang java. Tôi đang cố gắng để xem một cái gì đó của thiên nhiên đó List<TypedObject>
từ mã java được gọi vào clojure.Làm cách nào để chuyển bộ sưu tập đã nhập từ clojure sang 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] ????])
Chúng ta hãy xem xét rằng tôi đang viết một API bằng clojure, được phân phối dưới dạng tệp jar, được sử dụng từ java. Câu hỏi của tôi thực sự là cách để vượt qua vị trí của ???? câu hỏi đánh dấu ở trên bên trong: gen-class cho AOT, để một lập trình viên viết một đoạn mã trong java bằng cách sử dụng api của tôi, có thể có sự hoàn thành intellisense/mã thích hợp (ví dụ: createListofTypedObjects() returns List<TypedObject>
) từ trong nhật thực chẳng hạn.
một ví dụ ngắn về mã java gọi clojure thực sự sẽ giúp tôi anser này :) –
Cảm ơn bạn Alex và Stuart cho câu trả lời của bạn. Họ làm cho cảm giác hoàn hảo, nhưng không hoàn toàn những gì tôi đang tìm kiếm. Hy vọng rằng, câu hỏi của tôi bây giờ ít mơ hồ hơn. – user258030