加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

java中eval怎么使用

(2017-08-09 15:34:14)
标签:

javaeval

java中eval方法的使用

分类: java

JDK自带的类可以实现调用js的功能,可以实现执行字符串中的运算公式的功能。

在最下面一行是脚本的别名,也就是使用它们中的任意一个都可以。得到一个具体的脚本引擎有3种方法。

  •   根据扩展名得到脚本引擎

  

ScriptEngine engine = manager.getEngineByExtension("js");

 

  getEngineByExtension的参数就是Extensions:[js]中[…]里的部分。

  •   根据Mime类型得到脚本引擎

  

ScriptEngine engine = manager.getEngineByMimeType("text/;

 

  getEngineByMimeType的参数可以是Mime types: [application/javascript, application/ecmascript, text/javascript,

  text/ecmascript]中的任何一个,可以将text/javascript改成text/ecmascript。

  •   根据名称得到脚本引擎

  

ScriptEngine engine = manager.getEngineByName(";

  getEngineByName后的参数可以是Names: [js, rhino, JavaScript, javascript, ECMAScript, ecmascript]中的任何一个,

  如可以将javascript改成ecmascript。

 

 

============================================================================================

  上面已经讨论了执行脚本的第一步,就是得到一个可用的脚本引擎。在完成这项工作之后就可以利用这个脚本引擎执行相应的脚本了。我们可以使用ScriptEngine的eval方法来执行脚本。eval方法被重载的多次,但最常用的是 public Object eval_r(String script)。

  下面的例子演示了如何使用eval方法来执行javascript脚本。

public class FirstJavaScript {
public static void main(String args[]) {
ScriptEngineManager manager = new ScriptEngineManager();
// 得到javascript脚本引擎

ScriptEngine engine = manager.getEngineByName(";
try {
// 开始运行脚本,并返回当前的小时

Double hour = (Double) engine.eval_r("var date = new Date();" + "date.getHours();");
String msg;
// 将小时转换为问候信息
System.out.println(hour);
if (hour < 10) {
msg = "上午好";
} else if (hour < 16) {
msg = "下午好";
} else if (hour < 20) {
msg = "晚上好";
} else {
msg = "晚安";
}
System.out.println("小时%s: %s%n:"+ hour+""+ msg);
} catch (ScriptException e) {
}
}
}
这个例子最值得注意的是执行的2句脚本,最后一句是date.getHours()。并未将这个值赋给一个运算符。如(c=a+b, c + d),这个表达式的返回值是a+b+d。

0

阅读 收藏 喜欢 打印举报/Report
后一篇:正则表达式
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有