2013-03-13 54 views
1

我试图填充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 [] 
; (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]) 

任何想法我做错了什么?

回答

4

您正试图呼叫(particles)作为一个功能,但它只是简单的变种。而不是(particles)使用particles

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