我无法找到有关此问题的任何文档(或博客)。是否可以从clojure调用包受保护的方法?我们有一个巨大的java代码库,我在想是否有可能开始围绕它们开发一些clojure库。
我尝试使命名空间与java中的包相同,但找不到方法(静态)。
答案 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代码库中公开声明的字段和方法。