rJava .jcall 返回类型问题



我遇到了返回任何类型的数组的问题 .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 参数应该是什么。

最新更新