我需要创建并填充一个ArrayList,然后将它传递给Java API。有人可以帮忙解释下面两种方法的区别(以及为什么其中一种不起作用)。
或者,有没有其他建议代替上述方法?
;;; this works
(defn make-an-array-list []
(let [alist (java.util.ArrayList.)]
(loop [x 0] (when (< x 6) (.add alist x) (recur (inc x)))) alist))
;;; ==> [0 1 2 3 4 5]
;;; this does not work
(defn make-an-array-list2 []
(let [alist (java.util.ArrayList.)]
(for [n (range 6)] (.add alist n)) alist))
;;; ==> []
或者,有没有其他建议代替上述方法?