2

R で Java インターフェースを呼び出す式は 2 種類知っていました。たとえば public void add(int a,int b){}、クラスにJava 関数定義があります。Test


library(rJava)
.jinit()
.jaddClassPath(dir( "lib", full.names=T ))

Test = J('...Test')
test = new(Test)
a = as.integer(3)
b = as.integer(4)
.jcall(test,'V','add',a,b) #first type of expression
test$add(a,b) #second type of expression

2 種類の式をテストしましたが、最初の式は 2 番目の式よりもはるかに効率的です。理由の詳細を知りたいです。本当にありがとう。

4

1 に答える 1

4

rjavaサイトによると:

このインターフェースは Java リフレクション API を使用して正しいメソッドを見つけるため、速度が遅くなり、正しくない可能性があります (単純な例では機能しますが、より複雑な例では機能しない場合があります)。

したがって、反射のために遅くなります。

于 2014-01-10T02:10:29.467 に答える