2

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

执行以下操作似乎从 clojure.core 调用 eval 方法,而不是 TestObject 的 eval:

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

1 回答 1

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

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

于 2013-02-18T01:37:30.247 回答