rJava: 调用 Java 函数来检索对象列表

rJava: calling a Java function to retrieve a list of objects

我需要在 R 中获取 Java 中的对象列表。在下面的代码中,我成功地获得了 R 中的列表(列表的长度是正确的)但是我看不到对象的内容。

这个class代表对象:

package mypackage;
public class ValueObject 
    public String s;
    public int i;
}

此classreturns对象列表:

package mypackage;
public class MyClass {

    public ValueObject [] test(){

        ValueObject [] array = new ValueObject [3];

        ValueObject a = new ValueObject();
        a.i = 1;
        a.s = "A";
        array[0] = a;

        ValueObject b = new ValueObject();
        b.i = 2;
        b.s = "B";
        array[1] = b;

        ValueObject c = new ValueObject();
        c.i = 3;
        c.s = "C";
        array[2] = c;

        return array;
    }
}    

而我 运行 它在 R 中,像这样:

obj = .jnew("mypackage/MyClass")
x = .jcall(obj,"[Lmypackage/ValueObject;","test")

print(length(x))显示3,表示对象在那里。但我不知道如何访问对象中的数据。我试过了:

x[1]$s
x[1]["s"]
x[1]@s

并且总是得到 NULL。这段代码有什么问题?

这样就可以了:

print(x[[1]]$s)