rJava .jcall返回类型问题

时间:2013-09-06 11:27:46

标签: rjava

我遇到了使用.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”

2 个答案:

答案 0 :(得分:1)

你有没有试过这样的事情:

Test <- J( "Test" )
Test$sample()

现在使用rJava中基于反射的API已有好几年了,并且比低级.jnew, .jcall接口更方便。

答案 1 :(得分:0)

我不知道rJava,但看起来你告诉库在方法实际上是静态时查找实例方法。检查文档,看看jcall的第一个参数应该是静态方法。