Java实现字符串转换成可执行代码的方法
发布于 2020-3-27|
复制链接
分享一篇关于Java实现字符串转换成可执行代码的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小妖过来看看吧
使用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;
/**
* 动态加载方法
*
*/
public class DyMethodUtil {
public static Object invokeMethod(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);
}
}
```
调用
```java
Map map=new HashMap();
map.put("testService",testService);
map.put("person",person);
String expression="testService.save(person)";
DyMethodUtil.invokeMethod(expression,map);
```