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

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



通用工具类:

/**
	 * 
	 * @author: Longjun
	 * @Description: 使用commons的jexl可实现将字符串变成可执行代码的功能
	 * @date:2016年3月21日 下午1:45:13
	 */
	public static Object convertToCode(String jexlExp,Map 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 map=new HashMap(); 
			map.put("money",2100);  
			String expression="money>=2000&&money<=4000";  
			Object code = convertToCode(expression,map);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
code输出是true;


调用示例2:

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



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

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


maven配置:


	org.apache.commons
	commons-jexl
	2.0





你可能感兴趣的:(java工具类,java,字符串转可执行的代码)