首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Rjb访问嵌套的静态类?

如何使用Rjb访问嵌套的静态类?
EN

Stack Overflow用户
提问于 2012-01-11 09:37:28
回答 1查看 343关注 0票数 2

假设一个Java程序定义了类A,它有一个嵌套的静态类'B‘。

如何使用Ruby-Java Bridge访问B类?

例如,这些尝试不起作用:

代码语言:javascript
复制
A = Rjb::import('package.A')
A.B 
A::B

有没有办法做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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的幕后揭示了内部对外部方法和数据的隐式访问):

代码语言:javascript
复制
Outer = Rjb::import(‘Outer’)
Inner = Rjb::import(‘Outer$Inner’)
StaticInner = Rjb::import(‘Outer$StaticInner’)

outer = Outer.new
inner = Inner.new(outer)
staticInner = StaticInner.new
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8813083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档