2013-11-21 26 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))