簡體   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