我可以使用哪些 Clojure 方法在一个对象上创建多个实例,然后将其存储在 Java ArrayList 中?
我知道如何在 Java 中做到这一点,但我不确定如何在 Clojure 中继续,任何帮助/指针将不胜感激
看看http://clojure.org/java_interop
(doto (new java.util.ArrayList)
(.add (new Object))
(.add (new Object)))
返回#<ArrayList [java.lang.Object@5ae7fa2, java.lang.Object@33d6798]>
在 clojure 中创建新对象有两种形式。
(Classname. args*)
(new Classname args*)
所以这里是一个简单的例子,如何在 clojure 中创建 java 对象。首先它在Java中的外观:
Thread thread = new Thread("Hi there");
Clojure
; return instance of java.lang.Thread class
(new Thread "Hi there")
或其他方式
(Thread. "Hi there")
为什么不存储在向量中?
user=> (def lst (atom []))
user=> (swap! lst conj "String")
user=> (swap! lst conj 123)
user=> @lst
["String" 123]