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")

このため、「Error in .jcall(objT, "[D", "sample") :method sample with signature ()[D not found」というエラーが表示されます

4

2 に答える 2

1

次のようなことを試しましたか:

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

これは、数年前から使用されているリフレクション ベースの API を使用しており、低レベルのインターフェイスrJavaよりもはるかに便利です。.jnew, .jcall

于 2013-09-06T11:37:28.243 に答える
0

私はrJavaを知りませんが、メソッドが実際には静的であるときにインスタンスメソッドを探すようにライブラリに指示していたようです。ドキュメントをチェックして、静的メソッドの jcall の最初の引数を確認してください。

于 2013-09-06T11:32:16.860 に答える