我有一个继承自 java 类(例如 java.util.HashMap)的 JRuby 类。第 3 方 java 代码正在调用一个反射方法,就像getDeclaredMethods()
我的类的 java 实例的getClass()
类型一样。我需要将在我的 ruby 类 (HM) 中定义的方法推送到这些“声明的方法”中,然后才能将其转换为 java,以便它们出现在第 3 方 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