Java クラス (java.util.HashMap など) から継承する JRuby クラスがあります。サードパーティの Java コードがgetDeclaredMethods()
、クラスの Java インスタンスのgetClass()
型のようなリフレクション メソッドを呼び出しています。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