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

问题描述 投票:1回答:1

我试图从Rascal调用Java方法,但我收到此错误:

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

捣蛋鬼代码:

@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,但结果相同。

我究竟做错了什么?

rascal
1个回答
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");
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.