使用commons的jexl可实现将字符串变成可执行代码的功能,我写了一个类来封装这个功能:
import java.util.Map;
import org.apache.commons.jexl2. ;
import org.apache.commons.jexl2.JexlContext;
import org.apache.commons.jexl2.JexlEngine;
import org.apache.commons.jexl2.MapContext;
/**
* 动态加载方法
*
*/
public class DyMethodUtil {
public static invokeMethod(String jexlExp,Map<String, > map){
JexlEngine jexl=new JexlEngine();
e = jexl.create (jexlExp);
JexlContext jc = new MapContext();
for(String key:map.keySet()){
jc.set(key, map.get(key));
}
if(null==e.evaluate(jc)){
return "";
}
return e.evaluate(jc);
}
}
调用
Map<String, > map=new HashMap<String, >();
map.put("testService",testService);
map.put("person",person);
String ="testService.save(person)";
DyMethodUtil.invokeMethod( ,map);
以上这篇Java实现字符串转换成可执行代码的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
继续阅读与本文标签相同的文章
上一篇 :
谷歌被控滥用用户定位工具 或在欧盟遭巨额罚款
-
折叠屏手机的相关知识
2026-05-16栏目: 教程
-
什么是线程安全,你真的了解吗?
2026-05-16栏目: 教程
-
图片验证码的需求分析、优雅实现
2026-05-16栏目: 教程
-
Postman之request
2026-05-16栏目: 教程
-
客户一个无厘头的BUG ,让我的青春痘炸了2颗
2026-05-16栏目: 教程
