如果某个Java类有一个名为“eval”的方法,我如何从Clojure中调用它?
执行以下操作似乎从clojure.core调用eval方法而不是TestObject的eval:
(defn test[x]
(let [obj (new TestObject)]
(. obj eval x)))
答案 0 :(得分:2)
(defn test[x]
(let [obj (new TestObject)]
(.eval obj x)))
编辑。然而,这很奇怪。点特殊形式.
期望符号作为第二个参数,并且此符号的名称被解释为类方法/字段的名称。因此,在您的情况下,eval
无法评估为eval
函数。