使用nashorn比较java中的字符串查询

时间:2017-03-27 09:06:18

标签: java-8 nashorn

我有这段代码:

        String query = "a == someRandomWord && b != 2";

        ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");

        SimpleBindings variables = new SimpleBindings();
        variables.put("a", "someRandomWord");
        variables.put("b", 1);
        System.out.println(engine.eval(query, variables));

它给了我一个错误,因为我不允许将String作为参数传递。

如何将String对象与.eval()函数进行比较?

1 个答案:

答案 0 :(得分:2)

'yourString'

使用\"yourString\"String query = "a == 'someRandomWord' && b != 2"; (因为你需要在Java中转义它),例如。

p

或者:也提供a[0..4]的绑定,如评论中所示。