Javaプログラムが入れ子になった静的クラス 'B'を持つクラスAを定義するとします。Rjbを使ってネストされた静的クラスにアクセスする方法は?
Ruby-Java Bridgeを使用してクラスBにアクセスするにはどうすればよいですか?
例えば、これらの試みは動作しません:
A = Rjb::import('package.A')
A.B
A::B
は、これを実現する方法はありますか?
Javaプログラムが入れ子になった静的クラス 'B'を持つクラスAを定義するとします。Rjbを使ってネストされた静的クラスにアクセスする方法は?
Ruby-Java Bridgeを使用してクラスBにアクセスするにはどうすればよいですか?
例えば、これらの試みは動作しません:
A = Rjb::import('package.A')
A.B
A::B
は、これを実現する方法はありますか?
Googleは2006年からこの結果をキャッシュしました。しかし、合理的に聞こえるので、試してみてください。
(PS:私は...これだけの情報を渡して、Javaの+ルビーのユーザーだけど、RJBを使用したことがない)
私はレが持っていた問題を調査抵抗することができませんでした静的な内部にアクセスすると、私は構文を見つけたと思う。内部クラス(静的かどうか)にアクセスすることは、ちょっと気味悪いように見えますが、実行可能です。統計は他のクラスと同様に読み込まれますが、パス名は '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
素晴らしいです。ありがとう。 – user2398029