Clojure:是否可以调用java的包受保护方法?

时间:2014-06-02 22:00:54

标签: clojure clojure-java-interop

我无法找到有关此问题的任何文档(或博客)。是否可以从clojure调用包受保护的方法?我们有一个巨大的java代码库,我在想是否有可能开始围绕它们开发一些clojure库。

我尝试使命名空间与java中的包相同,但找不到方法(静态)。

1 个答案:

答案 0 :(得分:4)

这是一个快速的代码示例:

 (def a (ref 0))
 (def klass (class a))
 (def m (.getDeclaredMethod klass "currentVal" (into-array Class [])))
 (.setAccessible m true)
 (.invoke m a (into-array []))

您应该查看reflect API

虽然,我建议只使用旧java代码库中公开声明的字段和方法。