让我们说Java程序定义了A类,它有一个嵌套的静态类'B'。
如何使用Ruby-Java Bridge访问B类?
例如,这些尝试不起作用:
A = Rjb::import('package.A')
A.B
A::B
有没有办法实现这个目标?
答案 0 :(得分:2)
Google从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