来自JRuby的Java方法内省

来自JRuby的Java方法内省,第1张

概述有没有办法从J Ruby内省Java对象并找出它的Java-land方法?像 http://github.com/oggy/looksee提供的那样,但对于Java.或者喜欢 (someobject).methods - 1.methods 这对于仅仅查看Java对象提供的内容而不是APIDoc来说是很好的. Looksee修补了解释器,这就是为什么它只适用于MRI和YARV,而不适用于JRuby 有没有办法从J Ruby内省Java对象并找出它的Java-land方法?像 http://github.com/oggy/looksee提供的那样,但对于Java.或者喜欢

(someobject).methods - 1.methods

这对于仅仅查看Java对象提供的内容而不是APIDoc来说是很好的.

解决方法 Looksee修补了解释器,这就是为什么它只适用于MRI和YARV,而不适用于JRuby,XRuby,IronRuby,Ruby.NET,Rubinius,tinyrb,RubyGolightly,MacRuby,HotRuby,BlueRuby,Cardinal,MagLev,SmallRuby,Red Sun和所有其他实现.

所以,如果你愿意修补HotSpot,我相信你可以掀起一个类似Java的东西:-)

至于你的基本内省,它只是工作™:

require 'java'java.lang.String.public_instance_methods.sort.reject {|m| m =~ /[_?!=~<>]/ }# => [:bytes,:charat,:class,:clone,:codePointAt,:codePointBefore,# => :codePointCount,:com,:compareto,:comparetoIgnoreCase,:concat,# => :contains,:contentEquals,:display,:dup,:empty,:endsWith,:equals,# => :equalsIgnoreCase,:extend,:finalize,:freeze,:getBytes,:getChars,# => :getClass,:hash,:hashCode,:ID,:indexOf,:initialize,:inspect,:intern,# => :isEmpty,:java,:javax,:lastIndexOf,:length,:matches,:method,# => :methods,:notify,:notifyAll,:offsetByCodePoints,:org,:regionMatches,# => :replace,:replaceAll,:replaceFirst,:send,:split,:startsWith,# => :subSequence,:substring,:synchronized,:taint,:tap,:tochararray,# => :tolowerCase,:toString,:toupperCase,:trim,:trust,:type,:untaint,# => :untrust,:wait]

当然,JRuby的一个要点是尽可能地集成Java和Ruby对象模型,所以我们实际上在这里获得了Java和Ruby方法,但是拒绝所有带有不寻常或非常非法字符的方法. Java,我们得到一个相当干净的列表,剩下的Ruby方法并不难发现.

总结

以上是内存溢出为你收集整理的来自JRuby的Java方法内省全部内容,希望文章能够帮你解决来自JRuby的Java方法内省所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1247502.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存