java代码运行简单js方法案例

java代码运行简单js方法案例java代码运行简单js方法案例

大家好,又见面了,我是你们的朋友全栈君。

package 算法;

import java.util.HashMap;
import java.util.Map;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class 测试js {

	public static void main(String[] args) {
		//引入js
		ScriptEngine engine= new ScriptEngineManager().getEngineByName("js");
		//这里我们做的实验是把下面的dog对象方到js中,并运行js方法
		//这里我们把对象放到map中,
		Map<String, Object> map=new HashMap<>();
		Dogs dog=new Dogs();
		map.put("dog", dog);
		System.out.println(dog.name);
		//把对象放到js中
		engine.put("dog", new Dogs());
		try{
			engine.eval("function func(){return dog.name;}");//写个js方法,并返回
//判断是否包含某字符串
engine.eval("function func(){if(\"等待分派\".search(\"等待\") !=-1){return true;}else{return false;}");
//判断当前日期减去两年是否大于某个日期
engine.eval("function func(){return new Date("\2019/05/9\") >new Date().setFullYear(new Date().getFunllYear()-2);}")
//判断当前日期减去两月是否大于某个日期
engine.eval("function func(){return new Date("\2019/05/9\") >new Date().setMonth(new Date().getMonth()-2);}")

//返回某个日期减去2年得到的日期
engine.eval("function func(){return new Date("\2019/05/9\").setYear(new Date("\2019/05/9\").getYear()-2).toLocalString();}");
engine.eval("function func(){return new Date("\2019/05/9\").setFullYear(new Date("\2019/05/9\").getFullYear()-2).toLocalString();}");
//			engine.eval("function func(){if(map.name=='小黄'){return true;}else{return dog.age;}}");
			System.out.println(engine.eval("func()"));//运行func()方法
		}catch(ScriptException e){
			System.err.println(e.getCause());
		}
		
	}

}

Dog.java

package 算法;

public class Dogs {
	
	public String name="小黄";
	

}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105990.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 面向过程

    面向过程现在前端技术不是几年前的前端那样,熟练掌握JavaScript、Jquery、Ajax、DOM操作、其他框架等等这些就够了。而随着业务的复杂等多种因素,如今前端有了面向对象的方式编程,如:TypeSc

    2022年8月2日
    6
  • vuex的使用之mapGetters[通俗易懂]

    vuex的使用之mapGetters[通俗易懂]vue项目中,经常会使用到vuex,vuex是vue的一个状态管理。本文简单总结一下:vuex中mapGetters的使用。如果一个变量或对象需要在多个页面和组件中使用,那么,可以使用mapGetters。一.vuex中声明变量个方法1.在state中声明:state:{freeShipping:cookie.get(‘freeShipping’),}2.在mutations中书写方法:mutations:{updatefreeShipping(state,fre

    2022年5月20日
    117
  • JAVAC原理「建议收藏」

    JAVAC原理「建议收藏」前言本文是对compilation-overview的翻译.如有翻译不对的地方,还望海涵.正文将一组源文件编译成相应的一组类文件的过程并不简单,但是通常可以分为三个阶段。源文件的不同部分可以在“按需”的基础上以不同的速率进行处理。这个过程是由JavaCompiler类来处理的:将命令行上指定的源文件进行读取,解析为语法树,然后将所有外部可见的定义都输入到编译器的…

    2022年5月8日
    42
  • excel表格如何查重_if函数多列查重

    excel表格如何查重_if函数多列查重学习了excel函数:countif。表达式:COUNTIF(数据区域,条件),作用:对数据区域内符合条件单元格计数具体应用在“姓名”(列A)后插入一列(列B),在B2单元格输入公式“=IF(COUN

    2022年8月1日
    4
  • pycharm每次新建项目都要重新安装一些第三方库解决办法

    pycharm每次新建项目都要重新安装一些第三方库解决办法目前有三个解决办法,也是亲测有用的:第一个方法:因为之前有通过pycharm的projectinterpreter里的+号添加过一些库,但添加的库只是指定的项目用的,如果想要用,就必须用之前的项目的python解释器,举个例子:这个是我之前的项目的解释器,这个项目解释器是继承的python的解释器,同时又安装了上面你看到的这些库,包含numpy和opencv-python等,然后我新…

    2022年5月17日
    40
  • mysql中多表嵌套查询例子_mysql子查询嵌套规则

    mysql中多表嵌套查询例子_mysql子查询嵌套规则本文实例分析了MySQL嵌套查询。分享给大家供大家参考,具体如下:MySQl从4.11版后已经完全支持嵌套查询了,那么下面举些简单的嵌套查询的例子吧(源程序来自MySQLUserManual):1.SELECT语句的子查询语法:代码如下:SELECT…FROM(subquery)ASname…先创建一个表:CREATETABLEt1(s1INT,s2CHAR(…

    2022年10月21日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号