我遇到了返回任何类型的数组的问题 .jcall()
.这是我的代码。
public class Test(){
public static double[] sample(){
double[] nobjarr = new double[5]
nobjarr[0] = 1.0;
nobjarr[1] = 1.0;
nobjarr[2] = 1.0;
nobjarr[3] = 1.0;
nobjarr[4] = 1.0;
return nobjarr;
}
}
在R中,我使用.jcall调用
library(rJava)
.jinit()
.jaddClassPath("path to .class file")
objT <- .jnew("Test")
res <- .jcall(objT,"[D","sample")
为此,我收到一个错误,说".jcall(objT,"[D","样本")中的错误:带有签名的方法示例()[D未找到"
你有没有试过这样的事情:
Test <- J( "Test" )
Test$sample()
这使用基于反射的 API,该 API 已经rJava
了好几年,比低级 .jnew, .jcall
接口方便得多。
我不知道 rJava,但看起来你告诉库在方法实际上是静态的时寻找实例方法。 查看文档以了解静态方法的第一个 jcall 参数应该是什么。