文章目录
- 一、介绍
-
- 功能说明
- 实现原理
- 使用示例
- 二、代码
一、介绍
该方法针对逻辑与“&&” 和逻辑或“||” 也有效,对单个 “&” 或者“|” 执行结果无效,不过不影响真实结果。
功能说明
这是一个动态脚本执行工具方法,用于将字符串作为JavaScript代码执行并返回布尔值结果。方法接收一个字符串参数,将其作为JavaScript表达式进行解析和执行,最后将执行结果转换为Boolean类型返回。
实现原理
使用示例
// 简单的布尔表达式
Boolean result1 = executeStringReturnBoolean("2 > 1");
System.out.println(result1); // true
Boolean result2 = executeStringReturnBoolean("5 == 3");
System.out.println(result2); // false
Boolean result3 = executeStringReturnBoolean("true && false");
System.out.println(result3); // false
二、代码
<!—js脚本解析字符串返回boolean值—>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons–jexl3</artifactId>
<version>3.1</version>
</dependency>
执行字符串返回boolean结果:↓
/**
* 执行字符串返回boolean结果
* @param str 要执行的字符串
* @return 执行结果
* @throws ScriptException 抛异常
* 注意:缺陷(单独&和|也会识别,不过是错误答案,没参考性)
**/
public static Boolean executeStringReturnBoolean(String str) {
ScriptEngineManager manager = new ScriptEngineManager();
// 得到javascript脚本引擎
ScriptEngine se = manager.getEngineByName("js");
Boolean result = false;
try {
// 开始运行脚本 -》 我们可以使用ScriptEngine的eval方法来执行脚本
result = Boolean.parseBoolean(se.eval(str).toString());
} catch (ScriptException e) {
log.error(e.getMessage());
}
return result;
}



