尝试从Rascal调用Java方法时出错

时间:2017-12-17 13:08:15

标签: rascal

我试图从Rascal调用Java方法,但是我收到了这个错误:

Cannot link method com.mypackage.Teste because: class not found

Rascal代码:

@javaClass{com.mypackage.Teste}
java void testeJava();

Java代码:

package com.mypackage;

public class Teste {
    public void testeJava() {
        System.out.println("it worked");
    }
}

com.mypackage包位于我的src文件夹中,以及所有Rascal代码。我也试过使用src.com.mypackage.Teste,但结果相同。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

该类需要一个具有IValueFactory类型参数的构造函数。您通常会将其存储在字段中,因为这是响应函数调用的方式。 (与这家工厂建立IValues)

package com.mypackage;

import io.usethesource.vallang.IValueFactory;

public class Teste {
    private final IValueFactory vf;

    public Tests(IValueFactor vf) {
       this.vf = vf;
    }
    public void testeJava() {
        System.out.println("it worked");
    }
}