0
我想枚举从Ruby方面的接口的方法,据我所知,JRuby映射到模块。我可以枚举JRuby中Java接口的实例方法吗?
我认为应该工作:
name = # omitting logic which is currently iterating entries of a jar file
clazz = name.constantize
clazz.instance_methods
如果我打电话instance_methods
像Enumerable
一些真正的模块,我得到我所看到的记录的方法的完整列表。
同样,如果我叫instance_methods
像Comparable
或由JRuby的特殊处理Collection
一些Java接口上,我得到一个名单,但只包括特殊的Ruby方法,并不是所有的方法目前在界面上。
在任何其他接口上调用返回[]
,这不是特别有用。
我知道我可以下降到java_class
并使用Java introspection来获取声明的方法,但我特别想要所有方法的Ruby名称,因为我试图比较jar的内容和运行结果规格,试图找到未经测试的方法。
有没有适当的方法来做到这一点?