我希望在Clojure函数中使用Java反射方法。我认为像
结果是一个列表
(.toString {:a 1})
这样的代码将由Clojure reader解析和编译。因此,通过使用Clojure宏可以实现它。但是,如果我想定义一个函数在运行时调用Java对象方法,它会失败。我不知道如何在Clojure中调用这种代码。以下是我的演示代码: (def jmethod ".toString")
(defn call-java-method [mname & body]
(let [fn1 (fn [] `(~(symbol mname) ~@body))]
(fn1)))
user=> (call-java-method jmethod 3.4M)
结果是一个列表
(.toString 3.4M)
,但我想将此列表作为Clojure函数调用进行评估。