从JRuby实例化非静态Java内部类

前端之家收集整理的这篇文章主要介绍了从JRuby实例化非静态Java内部类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以给出以下 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)

猜你在找的Ruby相关文章