0

我在返回任何类型的数组时遇到了问题.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 未找到”

4

2 回答 2

1

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

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

这使用了rJava几年前的基于反射的API,比低级.jnew, .jcall接口方便得多。

于 2013-09-06T11:37:28.243 回答
0

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

于 2013-09-06T11:32:16.860 回答