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);
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);
相关文章推荐
- java实现字符串转换成可执行代码
- Java实现字符串转换成可执行代码的方法
- java实现字符串转换成可执行代码
- @V@ java代码笔记2010-06-12:java控制台输入各类型类实现;以及判断输入字符串里面是否有数字的两种方法:方法1:转换成字符数组;方法2:正则表达式。
- java将字符串转换成可执行代码
- java简单实现测试程序执行时间及日期转换字符串
- java实现图片和字符串互相转换的代码
- 问题1:java中没有实现这种“byte a = 0xB2 --> String b = “B2””转换的简单实现需要自己实现。 答:自己编写的转换函数,思路将byte的高低4位分开,分别转换为对应的字符然后合成返回的字符串。 java 代码 1.
- java实现图片和字符串互相转换的代码
- 在java代码中执行js脚本,实现计算出字符串“(1+2)*(1+3)”的结果
- 在java中实现日期类型和字符串类型的转换_所有(Date String Timestamp Datetime)
- 在java中实现日期类型和字符串类型的转换大全(Date String Timestamp Datetime)
- C# 实现16进制和字符串之间转换的代码[转]
- java怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
- java的Timer计时器实现几秒后循环执行代码的例子
- 实现 java 执行 cmd 命令,打印输出,等待cmd 完全执行完成后才执行下面代码 .
- Python代码实现Java本地化资源字符串的检查,防止出现空指针异常
- java实现图片与base64字符串之间的转换
- php中将时间差转换为字符串提示的实现代码
- 【转】Java中实现字符串与十六进制编码相互转换