如果某个Java类有一个名为“eval”的方法,我该如何从Clojure中调用它?如何从Clojure调用Java类的eval方法?
执行以下操作似乎从clojure.core代替的TestObject的eval调用eval方法:
(defn test[x]
(let [obj (new TestObject)]
(. obj eval x)))
如果某个Java类有一个名为“eval”的方法,我该如何从Clojure中调用它?如何从Clojure调用Java类的eval方法?
执行以下操作似乎从clojure.core代替的TestObject的eval调用eval方法:
(defn test[x]
(let [obj (new TestObject)]
(. obj eval x)))
(defn test[x]
(let [obj (new TestObject)]
(.eval obj x)))
编辑。然而这很奇怪。点特殊形式.
需要一个符号作为第二个参数,并且此符号的名称被解释为类方法/字段的名称。因此eval
无法在您的情况下评估为eval
函数。
非常感谢。 – 2013-02-18 01:45:41
@EmreColak它消除了这个问题吗? – mobyte 2013-02-18 03:23:21
这似乎不是真的 - 是什么让你觉得呢? – sepp2k 2013-02-18 01:40:34