如何将 ScriptEngine.eval 转换为 Java 对象
How to convert ScriptEngine.eval to Java object
我正在使用 ScriptEngine 运行 Javascript。在我的例子中,Javascript 总是 return 一个布尔值。我认为 eval() 会 return 一个我可以投射的对象,但它似乎 return 一个 ScriptObjectMirror
。 toString() returns [Boolean true]
,所以评估有效。如何转换或转换为布尔值或布尔值?
这是我的代码
final ScriptEngineManager manager = new ScriptEngineManager();
final ScriptEngine engine = manager.getEngineByName("javascript");
final Object jsEval = engine.eval(String.format("new Boolean(%s)", jsString));
System.out.printf("*** jsEval: %s %s%n ", jsEval, jsEval.getClass().getName());
输出是
*** jsEval: [Boolean true] jdk.nashorn.api.scripting.ScriptObjectMirror
如果你确定知道类型,你可以使用to
方法:
jsEval.to(Boolean.class)
我正在使用 ScriptEngine 运行 Javascript。在我的例子中,Javascript 总是 return 一个布尔值。我认为 eval() 会 return 一个我可以投射的对象,但它似乎 return 一个 ScriptObjectMirror
。 toString() returns [Boolean true]
,所以评估有效。如何转换或转换为布尔值或布尔值?
这是我的代码
final ScriptEngineManager manager = new ScriptEngineManager();
final ScriptEngine engine = manager.getEngineByName("javascript");
final Object jsEval = engine.eval(String.format("new Boolean(%s)", jsString));
System.out.printf("*** jsEval: %s %s%n ", jsEval, jsEval.getClass().getName());
输出是
*** jsEval: [Boolean true] jdk.nashorn.api.scripting.ScriptObjectMirror
如果你确定知道类型,你可以使用to
方法:
jsEval.to(Boolean.class)