killme2008 / aviatorscript

A high performance scripting language hosted on the JVM.

Home Page:http://fnil.net/aviator/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

无法导入Java实例方法

human-user opened this issue · comments

参照文档自定义函数和调用 Java 方法中的【导入实例方法】部分示例,报错FunctionNotFoundException: Function not found: s.indexOf

AviatorEvaluatorInstance evaluator = AviatorEvaluator.newInstance();
AviatorEvaluator.addInstanceFunctions("s", String.class);
evaluator.execute("""
        p(s.indexOf("hello", "l"))
        """);

依赖版本:5.3.3

理解有误,AviatorEvaluator.newInstance()创建了一个新的AviatorEvaluatorInstance,而AviatorEvaluator.addInstanceFunctions()实际上是为默认的AviatorEvaluatorInstance导入实例方法,此处应该用evaluator .addInstanceFunctions()