Javaプログラムが、ネストされた静的クラス「B」を持つクラスAを定義するとします。
Ruby-Java Bridgeを使用してクラスBにアクセスするにはどうすればよいですか?
たとえば、これらの試みは機能しません。
A = Rjb::import('package.A')
A.B
A::B
これを達成する方法はありますか?
Javaプログラムが、ネストされた静的クラス「B」を持つクラスAを定義するとします。
Ruby-Java Bridgeを使用してクラスBにアクセスするにはどうすればよいですか?
たとえば、これらの試みは機能しません。
A = Rjb::import('package.A')
A.B
A::B
これを達成する方法はありますか?
グーグルは2006年からこの結果をキャッシュしました。しかし、合理的に聞こえるので、それを試してみてください!
(PS:私はjava + rubyユーザーですが、Rjbを使用したことがないので、情報を渡すだけです...)
静的内部へのアクセスに関してLesが抱えていた問題を調査することに抵抗できず、構文を見つけたと思います。内部クラス(静的または非静的)へのアクセスは少し不安定に見えるかもしれませんが、それは実行可能です。スタティックは他のクラスと同じようにロードされますが、パス名は「OuterClass$StaticInnerClass」です。非静的内部クラスは少し注意が必要です。'OuterClass$Inner'を使用して静的なようにインポートします。これで内部クラスができましたが、コツはインスタンスをインスタンス化することです。コンストラクターへの最初の引数としてOuterClassインスタンスを提供する必要があります(したがって、Javaのカーテンの少し後ろで、内部が外部のメソッドに持つ暗黙のアクセスを明らかにします。データ):
Outer = Rjb::import(‘Outer’)
Inner = Rjb::import(‘Outer$Inner’)
StaticInner = Rjb::import(‘Outer$StaticInner’)
outer = Outer.new
inner = Inner.new(outer)
staticInner = StaticInner.new