如何在Clojure中填充ArrayList?

如何在Clojure中填充ArrayList?,clojure,arraylist,Clojure,Arraylist,我试图在Clojure中填充ArrayList,但收到以下错误消息 java.util.ArrayList不能强制转换为clojure.lang.IFn 这是我的密码: (ns blackhole-v1.core (:import [java.util ArrayList]) (:import [toxi.geom Vec2D]) (:use [quil.core])) (def particles (new ArrayList)) (defn add-particle []

我试图在Clojure中填充ArrayList,但收到以下错误消息

java.util.ArrayList不能强制转换为clojure.lang.IFn

这是我的密码:

(ns blackhole-v1.core
  (:import [java.util ArrayList])
  (:import [toxi.geom Vec2D])
  (:use [quil.core]))


(def particles (new ArrayList))


(defn add-particle []
;  (particles (.add (new Vec2D (random (width)) (random (height)))))
  (doto (particles)
    (.add (new Vec2D (random (width)) (random (height))))))


(defn setup []
  (smooth)
  (background 0)
  (add-particle))


(defn draw []
  (background 0)
  (dotimes [i (.size particles)]
    (ellipse (.x (.get particles i)) (.y (.get particles i)) 20 20)))


(defsketch blackhole-v1
  :title "black hole v1"
  :setup setup
  :draw draw
  :size [640 480])

你知道我做错了什么吗?

你试图将
(粒子)
作为函数调用,但它只是一个简单的变量。而不是
(粒子)
使用
粒子

(defn add-particle []
;  (particles (.add (new Vec2D (random (width)) (random (height)))))
  (doto particles
    (.add (new Vec2D (random (width)) (random (height))))))

您试图将
(粒子)
作为函数调用,但它只是一个简单的变量。请使用
粒子来代替
(粒子)

(defn add-particle []
;  (particles (.add (new Vec2D (random (width)) (random (height)))))
  (doto particles
    (.add (new Vec2D (random (width)) (random (height))))))