NoSuchMethodError:<init>使用rJava创建新对象时

时间:2017-11-15 06:48:09

标签: java r exception rjava

最近我在使用rJava时遇到了一个问题。 首先,我创建了一个公共类DirectedEdge:

public class DirectedEdge {
    public int v;
    public int w;
    public double weight;
    public DirectedEdge(){}
    public DirectedEdge(int v, int w, double weight) {
        this.v = v;
        this.w = w;
        this.weight = weight;
    }
}

然后我在RStudio上运行以下代码:

.jinit();
.jaddclassPath('XXXXXX');
.jnew('DirectedEdge');
.jnew('DirectedEdge',1,2,0.1);

我已经将类路径设置为我的.class文件所在的位置,但是第三行确实运行了,第四行失败了。 RStudio给了我一个例外:

Error in .jnew("DirectedEdge", 1, 2, 0.1) : java.lang.NoSuchMethodError: <init>

我还尝试了rJava文档中的示例:

.jnew('java/lang/String',"Hello World!")

效果很好。所以有什么问题?非常感谢。

1 个答案:

答案 0 :(得分:1)

数字的默认类型是double,因此请使用.jnew(“DirectedEdge”,as.integer(1),as.integer(2),0.1)