2013-02-18 34 views
2

如果某个Java类有一个名为“eval”的方法,我该如何从Clojure中调用它?如何从Clojure调用Java类的eval方法?

执行以下操作似乎从clojure.core代替的TestObject的eval调用eval方法:

(defn test[x] 
    (let [obj (new TestObject)] 
    (. obj eval x))) 
+0

这似乎不是真的 - 是什么让你觉得呢? – sepp2k 2013-02-18 01:40:34

回答

2
(defn test[x] 
    (let [obj (new TestObject)] 
    (.eval obj x))) 

编辑。然而这很奇怪。点特殊形式.需要一个符号作为第二个参数,并且此符号的名称被解释为类方法/字段的名称。因此eval无法在您的情况下评估为eval函数。

+0

非常感谢。 – 2013-02-18 01:45:41

+0

@EmreColak它消除了这个问题吗? – mobyte 2013-02-18 03:23:21