我遇到了使用.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“,”sample“):带签名的方法示例()[找不到D”
答案 0 :(得分:1)
你有没有试过这样的事情:
Test <- J( "Test" )
Test$sample()
现在使用rJava
中基于反射的API已有好几年了,并且比低级.jnew, .jcall
接口更方便。
答案 1 :(得分:0)
我不知道rJava,但看起来你告诉库在方法实际上是静态时查找实例方法。检查文档,看看jcall的第一个参数应该是静态方法。