Инстанцирование нестатического Java Внутренний Класс от JRuby

Так, учитывая следующий класс 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...>

Что корректный путь состоит в том, чтобы сделать это?

10
задан rampion 4 February 2010 в 13:53
поделиться

2 ответа

i = Outer::Inner.new(o,2)
9
ответ дан 4 December 2019 в 01:00
поделиться

Из того, что можно увидеть в этом обсуждении , вам нужно будет выполнить Outer: Inner.new (o, 2)

2
ответ дан 4 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: