Java实现字符串转换成可执行代码的方法

作者:一缕阳光直射你的心扉 时间:2022-06-14 02:30:49 

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


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<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);
}

}

调用


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);

来源:https://blog.csdn.net/u013410747/article/details/51791394

标签:Java,字符串,执行
0
投稿

猜你喜欢

  • C#中静态的深入理解

    2023-10-18 01:28:27
  • Java使用FileInputStream流读取文件示例详解

    2021-05-26 00:57:58
  • C# CultureInfo类案例详解

    2023-04-20 05:00:45
  • Winform实现调用asp.net数据接口实例

    2021-12-16 09:12:48
  • Java 类加载机制详细介绍

    2023-12-19 13:55:59
  • Android实现文件上传和下载倒计时功能的圆形进度条

    2023-12-08 16:45:35
  • 数字金额大写转换器制作代码分享(人民币大写转换)

    2021-05-25 11:51:25
  • Spring源码完美导入IDEA的过程

    2023-05-13 14:11:50
  • 图解Java排序算法之快速排序的三数取中法

    2022-02-26 17:58:23
  • C# Fiddler插件实现网站离线浏览功能

    2022-10-09 01:46:14
  • C#数字图像处理之图像缩放的方法

    2023-02-12 11:09:29
  • JavaWeb Servlet实现文件上传与下载功能实例

    2023-06-16 16:41:27
  • java微信公众号企业付款开发

    2023-04-07 00:21:08
  • MyBatis的SUM映射问题及解决

    2023-01-07 17:27:04
  • java Mail邮件接收工具类

    2022-04-24 14:17:17
  • java mybatis如何操作postgresql array数组类型

    2023-04-25 22:59:37
  • Java后台实现微信支付和微信退款

    2023-09-06 13:44:00
  • Unity 百度AI实现Logo商标识别

    2023-06-09 17:04:26
  • c#创建圆形类Circle、矩形类实现代码

    2023-08-18 19:59:12
  • java 教你如何给你的头像添加一个好看的国旗

    2021-11-11 02:53:25
  • asp之家 软件编程 m.aspxhome.com