假设一个Java程序定义了类A,它有一个嵌套的静态类'B‘。
如何使用Ruby-Java Bridge访问B类?
例如,这些尝试不起作用:
A = Rjb::import('package.A')
A.B
A::B有没有办法做到这一点?
发布于 2012-01-11 12:00:04
Google缓存了2006年的结果。虽然听起来很合理,但还是拿去试试吧!
(PS:我是一名java + ruby用户,但从未使用过Rjb,所以只传递信息...)
http://webcache.googleusercontent.com/search?q=cache:1p7OdptgsYUJ:blog.voneicken.com/2006/12/3/accessing-inner-java-classes-via-rjb+inner+class+rjb+ruby+java&cd=10&hl=en&ct=clnk&gl=au
我情不自禁地调查了Les在访问静态inners时遇到的问题,我想我找到了语法。访问内部类(静态的或非静态的)可能看起来有点不可靠,但它是可行的。Statics和其他类一样加载,但它们的路径名是‘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.newhttps://stackoverflow.com/questions/8813083
复制相似问题