我试图从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
,但结果相同。
我做错了什么?
答案 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");
}
}