2013-11-21 69 views
0

我下面就Clojure的例子在行動頁326,未能在Clojure中定義一個類?

(defn new-object [klass] 
    (fn [command & args] 
    (condp = command 
     :class klass))) 

然後我輸入:(def cindy (new-object Person))

它給我:CompilerException java.lang.RuntimeException: Unable to resolve symbol: Person in this context, compiling:(/Users/sdfsd/clj/testlein/src/testlein/sdf:22:12)

如果我改變的人,以 「人」 或'人,它的工作。但我認爲這不是解決這個問題的正確方法,因爲Person應該是一個班級,而「Person」是:班級的名字。有人能告訴我爲什麼我有這個問題嗎?謝謝!

+1

使用你必須導入類,HTTP:/ /clojuredocs.org/clojure_core/clojure.core/import – tangrammer

回答

1
(import package-and-name-of-your-person-class) 

或者不進口,在函數調用封裝和名稱的 - 你的人級的參數,而不是人

(def cindy (new-object package-and-name-of-your-person-class))