小编Agn*_*raj的帖子

jdk8中scriptmanager的返回值

我一直在尝试下面的代码

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class ScriptCode {
    public static void main(String[] args) throws Exception{
        String code="";
        int y=-1;
        ScriptEngineManager mgr = new ScriptEngineManager();
        ScriptEngine engine = mgr.getEngineByName("JavaScript");
        code="if(a<b){return b;}else{return a;}";
        engine.put("a",10);
        engine.put("b",100);
        y=(int)engine.eval(code);
        System.out.println(y);
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息

Caused by: jdk.nashorn.internal.runtime.ParserException: <eval>:1:8 Invalid return statement
if(a<b){return b;}else{return a;}
Run Code Online (Sandbox Code Playgroud)

我无法解决这个问题。问题是在我的用例中,“code”变量将有一些规则,这些规则将返回一些内容。我知道如何在不返回的情况下执行此操作,但我无法从代码中返回某些值。我该怎么做?

java eval java-8

5
推荐指数
1
解决办法
802
查看次数

标签 统计

eval ×1

java ×1

java-8 ×1