所以给出以下
java类:
class Outer { private int x; public Outer(int x) { this.x = x; } public class Inner { private int y; public Inner(int y) { this.y = y; } public int sum() { return x + y; } } }
我可以通过以下方式从Java创建一个内部类的实例:
Outer o = new Outer(1); Outer.Inner i = o.new Inner(2);
但是,我似乎从JRuby这样做也是如此
#!/usr/bin/env jruby require 'java' java_import 'Outer' o = Outer.new(1); i = o.Inner.new(2); #=> NoMethodError: undefined method `Inner' for #<Outer...>
这样做的正确方法是什么?
解决方法
i = Outer::Inner.new(o,2)