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="小黄";
}