0

我可以使用哪些 Clojure 方法在一个对象上创建多个实例,然后将其存储在 Java ArrayList 中?

我知道如何在 Java 中做到这一点,但我不确定如何在 Clojure 中继续,任何帮助/指针将不胜感激

4

2 回答 2

1

看看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")
于 2013-03-14T10:30:38.777 回答
0

为什么不存储在向量中?

user=> (def lst (atom []))
user=> (swap! lst conj "String")
user=> (swap! lst conj 123)
user=> @lst
["String" 123]
于 2013-03-14T10:22:35.307 回答