使用

JavaScript engine that is bundled with Java 1.6怎么样?

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

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′.

java 简单 语言_将简单的表达式语言放入java中相关推荐

  1. java 编写代码_如果您在2016年编写过Java代码-这是您不容错过的趋势

    java 编写代码 2016年最有趣的Java相关主题 关于代码,有很多热门话题,而要跟上所有事情,这是一项全职的工作. 如果您想知道如何从谷壳中分离出小麦,我们已经为您完成了工作. 在下面的文章中, ...

  2. java怎么把数据封进对象里_(Java)想把数组中一条一条的数据全部放入对象中去..要怎么做呢...

    展开全部 Java把数组中一条一条的数据全部放入对象中去操作如下: 1.先获取到数组中的数据dataArray数据. 2.接32313133353236313431303231363533e58685 ...

  3. ZeptoN正在将程序放入Java

    1.简介 Java编程语言或" Java"于1995年引入.然而,在近25年的时间里,它增加了最初不是核心语言所具有的功能. 此类功能包括枚举,泛型,对基本C样式功能开关语句的许多 ...

  4. java中将类放入包中,Java 包

    Java 允许使用包(package)将类组织起来.借助于包可以方便地组织自己的代码,并将自己的代码与别人提供的代码库分开管理.使用包的主要原因是确保类名的唯一性.标准的 Java 类库分布在多个包中 ...

  5. java笔试题_一道简单的 Java 笔试题,但值得很多人反思

    专注于Java领域优质技术,欢迎关注 作者:匿蟒 前言 面试别人,对我来说是一件新奇事,以前都是别人面试我.我清楚地知道,我在的地域与公司,难以吸引到中国的一流软件人才.所以,我特地调低了期望,很少问 ...

  6. java基数排序简单实现_基数排序简单Java实现

    1 package ahe.sort; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.i ...

  7. java applet配置_最简单的Java Applet程序

    1.配置好java的开发环境 2.用Eclipse新建一个Java Project,其他选择默认的配置. 3.新建一个类,在SuperClass选择Browser,查找Java Applet,选择后确 ...

  8. c++和java哪个好学_【技术科普】C语言和java语言有些什么区别?

    C语言和java语言有些什么区别? 可以打个比方吧: C语言就像一个初创公司的老板,由于人少经费少,从技术.财务.市场等都需要自己管,经常把自己累的跟狗一样: Java语言就像一个上市大公司的老板,人 ...

  9. java求值不用后缀表达式_数据结构之后缀表达式求值(java实现)

    数据结构之后缀表达式求值(java实现) 前记 ​ 今天在刷leet code的时候刷到了一道题,后缀表达式(逆波兰表达式)求值,我花了一会儿写了一下它的解法.但是今天我不谈什么是后缀表达式,有兴趣的 ...

  10. java数独流程图_九宫格数独游戏C语言解法

    最近几天深圳一直下雨,一个人闷在屋里很是无聊,偶然打开一个小游戏网站看到了我的最爱--九宫格数独游戏.共有1-5五个难度级别,像我这种资深玩家其他难度就不用考虑了,冲着难度5的题目就去了,结果做地汗流 ...

最新文章

  1. 爬虫之selenium控制浏览器执行js代码
  2. python 文本框内容变化_jquery文本框内容改变事件
  3. Cpp 对象模型探索 / 虚继承带虚函数的基类的子类的内存布局
  4. 关于MFC共享DLL的模块状态切换 .
  5. 有抱负/初级开发人员的良好习惯-避免使用的习惯
  6. 数据分级分类实施指南_运营商行业数据安全治理实践
  7. java操作ssdb:set、map、list..
  8. centOS安装oracleDB,静默安装DBCA的时候,报错
  9. springBoot构建Restful webService接口(医院)
  10. php微博api发布微博代码,使用新浪微博API的OAuth认证发布微博实例
  11. linux-xfce4-panel
  12. 一次 TLS SNI 问题
  13. 8.1 linux基础,创建用户
  14. [顺序刷] M6/M8/M11/E12/E14
  15. java俄罗斯方块七中图形类_shell中的俄罗斯方块小游戏
  16. CentOS7 编译安装qbittorrent遇到的问题
  17. 1035 Password (20 分)
  18. DP + 前缀和 - 牡牛和牝牛 - AcWing 1307
  19. MySQL 8.0.23免安装版配置步骤
  20. HTTP状态码 ---- 100至600 情况含义

热门文章

  1. 基因结构图绘制-单个基因
  2. 微生物预测年龄,皮肤比肠道更准确
  3. QIIME 2用户文档. 14数据评估和质控Evaluating and controlling(2019.7)
  4. QIIME 2用户文档. 9数据导入Importing data(2019.7)
  5. Nature Commun. | 假单胞和芽孢杆菌互作共存于寄主的机制,为生物防治提供新思路...
  6. R语言:聚类分析hclust
  7. 水稻微生物组时间序列分析4-随机森林回归
  8. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(分组箱体框颜色配置)实战
  9. pyspark dataframe数据连接(join)、转化为pandas dataframe、基于多个字段删除冗余数据
  10. plotly可视化绘制多图(multiplot)