栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将简单的表达语言放入Java

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将简单的表达语言放入Java

如何使用Java
1.6随附
的Javascript引擎呢?

您可以看到如何传递所有参数:

scriptEngineManager manager = new scriptEngineManager();scriptEngine engine = manager.getEngineByName("Javascript");engine.put("artist", artist);...

您将使用读取回值

scriptEngine.get(...)

粘合的最后一点是用函数声明包围用户的表达式,并编写一个调用函数并将结果分配给众所周知的变量的表达式。

因此,开始实验,让我们有一个功能来测试表达式:

private static void printResult(final scriptEngine jsEngine, String name, String expr) throws scriptException {    Object result = jsEngine.eval(expr);    System.out.println(name + " result: " + result + "; expr: " + expr);}

现在让我们称之为:

public static void main(String[] args) throws Exception {    scriptEngineManager sem = new scriptEngineManager();    scriptEngine jsEngine = sem.getEngineByName("Javascript");    printResult(jsEngine, "Hello World", "'Hello World'");    printResult(jsEngine, "Simple Math", "123 + 456");}

这将产生:

Hello World result: Hello World; expr: 'Hello World'Simple Math result: 579.0; expr: 123 + 456

现在让我们尝试一下您的用例:

public static void main(String[] args) throws Exception {    scriptEngineManager sem = new scriptEngineManager();    scriptEngine jsEngine = sem.getEngineByName("Javascript");    String expr = "artist + '-' + album + (disktotal > 1 ? ('-D' + diskno) : '')";    jsEngine.put("artist", "U2");    jsEngine.put("album", "The Joshua Tree");    jsEngine.put("disktotal", 1);    jsEngine.put("diskno", 1);    printResult(jsEngine, "Single Disk", expr);    jsEngine.put("artist", "Tori Amos");    jsEngine.put("album", "To Venus and Back");    jsEngine.put("disktotal", 2);    jsEngine.put("diskno", 2);    printResult(jsEngine, "Muti-Disk", expr);}

产生结果:

Single Disk result: U2-The Joshua Tree; expr: ...Muti-Disk result: Tori Amos-To Venus and Back-D2; expr: ...

请注意,托里(Tori)的末尾是“ D2”。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569521.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号