您的位置:首页 > 编程语言 > Java开发

java实现字符串转换成可执行代码

2017-05-15 00:00 615 查看
使用commons的jexl可实现将字符串变成可执行代码的功能,我写了一个类来封装这个功能:

Java代码



import java.util.Map;

import org.apache.commons.jexl2.Expression;

import org.apache.commons.jexl2.JexlContext;

import org.apache.commons.jexl2.JexlEngine;

import org.apache.commons.jexl2.MapContext;

/**

* 动态加载方法

* @author wangyfc

*

*/

public class DyMethodUtil {

public static Object invokeMethod(String jexlExp,Map<String,Object> map){

JexlEngine jexl=new JexlEngine();

Expression e = jexl.createExpression(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);

}

}

调用方式:

Java代码



Map<String,Object> map=new HashMap<String,Object>();

map.put("testService",testService);

map.put("person",person);

String expression="testService.save(person)";

DyMethodUtil.invokeMethod(expression,map);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐