2

我知道在 R 中调用 java 接口的两种表达式。例如 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

我测试了两种表达方式,第一种比第二种效率高得多。我想知道原因的细节。非常感谢。

4

1 回答 1

4

根据rjava网站:

此接口使用 Java 反射 API 来查找正确的方法,因此速度较慢且可能不正确(适用于简单示例,但可能不适用于更复杂的示例)。

因此,由于反射,它会变慢。

于 2014-01-10T02:10:29.467 回答