繁体   English   中英

添加到jruby类的getDeclaredMethods()

[英]adding to a jruby class's getDeclaredMethods()

我有一个从Java类继承的JRuby类(例如,java.util.HashMap)。 第三方Java代码正在类的Java实例的getClass()类型上调用类似getDeclaredMethods()的反射方法。 我需要将我在ruby类(HM)中定义的方法推送到这些“声明的方法”中,然后将其转换为Java,以便它们出现在第三方Java类中。 有人知道吗? 这是我的jruby代码:

require 'java'
class HM < java.util.HashMap; end

hm = HM.new
puts hm.getClass() 
     # => org.jruby.proxy.java.util.HashMap$ProxyO

# a third party will make the following call:
puts hm.getClass().getDeclaredMethods().count 
     # => 2 methods

HM.class_eval do ; def value_at_key(key); return self[key]; end; end

puts hm.getClass().getDeclaredMethods().count 
     # => still 2 methods

也许此错误目前正在阻止您? http://jira.codehaus.org/browse/JRUBY-6105

有两种创建Java类的方法https://github.com/jruby/jruby/wiki/GeneratingJavaClasses

我已经尝试了两种方式,并且在错误中描述了无效。

这个问题类似。我可以在ruby中定义Java子类,然后在Java中实例化它吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM