【问题标题】:Instantiating a non-static Java Inner Class from JRuby从 JRuby 实例化非静态 Java 内部类
【发布时间】:2010-02-04 13:53:00
【问题描述】:

所以给定下面的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...>

这样做的正确方法是什么?

【问题讨论】:

    标签: java ruby jruby inner-classes


    【解决方案1】:
    i = Outer::Inner.new(o,2)
    

    【讨论】:

      【解决方案2】:

      this discussion 中可以看到,你必须做Outer:Inner.new(o, 2)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多