2010-02-04 21 views
10

Vì vậy, cho lớp java sau:Instantiating một tổ chức phi tĩnh Java Nội Lớp từ JRuby

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; } 
    } 
} 

tôi có thể tạo ra một thể hiện của các lớp bên trong từ Java theo cách sau đây:

Outer o = new Outer(1); 
Outer.Inner i = o.new Inner(2); 

Tuy nhiên, tôi dường như không thể làm điều tương tự từ 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...> 

Cách chính xác để làm điều này là gì?

Trả lời

2

Từ những gì có thể được nhìn thấy trong this discussion, bạn sẽ phải làm Outer:Inner.new(o, 2)

Các vấn đề liên quan