可以说一个Java程序定义了A类,它有一个嵌套的静态类“B”。如何使用Rjb访问嵌套的静态类?
如何使用Ruby-Java Bridge访问类B?
例如,这些尝试不起作用:
A = Rjb::import('package.A')
A.B
A::B
有没有办法做到这一点?
可以说一个Java程序定义了A类,它有一个嵌套的静态类“B”。如何使用Rjb访问嵌套的静态类?
如何使用Ruby-Java Bridge访问类B?
例如,这些尝试不起作用:
A = Rjb::import('package.A')
A.B
A::B
有没有办法做到这一点?
谷歌从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 2012-01-11 16:34:25