Clojure:可以调用java的包保护方法吗?

Clojure:可以调用java的包保护方法吗?,clojure,clojure-java-interop,Clojure,Clojure Java Interop,我找不到与此相关的任何文档(或博客)。是否可以从clojure调用包保护的方法?我们有一个庞大的java代码库,我在想,是否有可能开始围绕它们开发一些clojure库 我尝试使名称空间与java中包的名称空间相同,但找不到方法(静态)。下面是一个快速代码示例: (def a (ref 0)) (def klass (class a)) (def m (.getDeclaredMethod klass "currentVal" (into-array Class []))) (.setAc

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


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

下面是一个快速代码示例:

 (def a (ref 0))
 (def klass (class a))
 (def m (.getDeclaredMethod klass "currentVal" (into-array Class [])))
 (.setAccessible m true)
 (.invoke m a (into-array []))
你可能应该看一下


尽管如此,我还是建议只使用旧java代码库中公开声明的字段和方法

下面是一个快速代码示例:

 (def a (ref 0))
 (def klass (class a))
 (def m (.getDeclaredMethod klass "currentVal" (into-array Class [])))
 (.setAccessible m true)
 (.invoke m a (into-array []))
你可能应该看一下


尽管如此,我还是建议只使用旧java代码库中公开声明的字段和方法

我没有一步一步回答这个问题,但是为了澄清起见,clojure中的名称空间不是一个包,它是一个包含变量名到值的映射的对象
(>(所有ns)first.getMappings类)=>clojure.lang.PersistentHashMap
我没有一个步骤可以回答这个问题,但是为了澄清起见,clojure中的命名空间不是一个包,它是一个包含变量名到值的映射的对象<代码>(>(所有ns)first.getMappings类)=>clojure.lang.PersistentHashMap