java - 我如何查看与 Clojure 中的对象关联的方法?

标签 java methods clojure

在 Clojure 中,我使用什么函数来查看 Java 对象的方法?

user=> (some-function some-java-object)
... lots of methods ...

最佳答案

从 1.3 版开始,Clojure 与 clojure.reflect 捆绑在一起。命名空间。函数reflect特别是可用于显示对象的所有方法(和其他信息)。使用起来不如show方便。另一方面,它更通用,使用 reflect 作为构建 block 很容易编写您自己的 show 版本。

例如,如果您想查看返回字符串的所有方法:

user=> (use 'clojure.reflect)
user=> (use 'clojure.pprint)

user=> (->> (reflect "some object") 
            :members 
            (filter #(= (:return-type %) 'java.lang.String))
            (map #(select-keys % [:name :parameter-types])) 
            print-table)

关于java - 我如何查看与 Clojure 中的对象关联的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7986136/

相关文章:

java - 项目制作jar文件后出错

java - 错误: Non-static variable super cannot be referenced from a static context >>but i use static keyword

java - JPA 2.1 外键未在 ManyToOne 级联上保存

java - 在 .jsp 文件中显示 .java 的输出

ruby-on-rails - 如何使用 rspec 测试 Controller 方法?

methods - 如何命名一个可能做或不做某事的方法?

java - Java十进制转二进制方法

java - 如何在 Clojure 的位运算中使用无符号 64 位变量?

clojure - 如何获取试剂中某个项目的索引

java - 使用 Cake 与 Clojure 一起构建 Java