我需要从R获取来自Java的对象列表。在下面的代码中,我成功地获取了R中的列表(列表的长度是正确的)但我看不到对象的内容。
此类表示对象:
package mypackage;
public class ValueObject
public String s;
public int i;
}
该类返回对象列表:
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。这段代码有什么问题?
答案 0 :(得分:1)
这就是诀窍:
print(x[[1]]$s)