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的內容和運行結果規格,試圖找到未經測試的方法。
有沒有適當的方法來做到這一點?