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

来源:互联网 发布:汉仪菱心体简 for mac 编辑:程序博客网 时间:2024/05/16 05:42

使用commons的jexl可实现将字符串变成可执行代码的功能



通用工具类:

/** *  * @author: Longjun * @Description: 使用commons的jexl可实现将字符串变成可执行代码的功能 * @date:2016年3月21日 下午1:45:13 */public static Object convertToCode(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);  }  

调用示例1:

public static void main(String[] args) {try {Map<String,Object> map=new HashMap<String,Object>(); map.put("money",2100);  String expression="money>=2000&&money<=4000";  Object code = convertToCode(expression,map);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}
code输出是true;


调用示例2:

public static void main(String[] args) {try {Map<String,Object> map=new HashMap<String,Object>();  map.put("testService",testService);  map.put("person",person);  String expression="testService.save(person)";  convertToCode(expression,map);  } catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}



所需jar包:commons-jexl-2.0.jar

下载连接:http://download.csdn.net/detail/junlong750/9468052


maven配置:

<dependency><groupId>org.apache.commons</groupId><artifactId>commons-jexl</artifactId><version>2.0</version></dependency>




0 0
原创粉丝点击