【问题标题】:rJava .jcall return type issuerJava .jcall 返回类型问题
【发布时间】:2013-09-06 11:27:45
【问题描述】:

我在使用.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 未找到的方法示例”

【问题讨论】:

    标签: rjava


    【解决方案1】:

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

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

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

    【讨论】:

    • @pommedeterresautee 你量过吗?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-17
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      • 2013-03-01
      相关资源
      最近更新 更多