So given the following java class:
所以给出以下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; }
}
}
I can create an instance of the inner class from Java in the following manner:
我可以通过以下方式从Java创建内部类的实例:
Outer o = new Outer(1);
Outer.Inner i = o.new Inner(2);
However, I can't seem how to do the same from JRuby
但是,我似乎无法从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...>
What's the correct way to do this?
这样做的正确方法是什么?
2 个解决方案
#1
9
i = Outer::Inner.new(o,2)
#2
2
From what can be seen in this discussion, you'll have to do Outer:Inner.new(o, 2)
从这个讨论中可以看出,你将不得不做Outer:Inner.new(o,2)
#1
9
i = Outer::Inner.new(o,2)
#2
2
From what can be seen in this discussion, you'll have to do Outer:Inner.new(o, 2)
从这个讨论中可以看出,你将不得不做Outer:Inner.new(o,2)