`
wiselyman
  • 浏览: 2096653 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
Group-logo
点睛Spring4.1
浏览量:82521
74ae1471-94c5-3ae2-b227-779326b57435
点睛Spring MVC4...
浏览量:130909
社区版块
存档分类
最新评论

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

 
阅读更多

使用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;

/**
 * 动态加载方法
 * @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);
	}

}

  

调用方式:

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实现字符串转换成可执行代码的方法,这是一种非常有价值的技术,能够将字符串转换成可执行的代码,具有很高的实践价值。 什么是JEXL? JEXL(Java ...

    把字符串变成可执行代码

    在编程领域,将字符串转换为可执行代码是一项关键技能,特别是在动态语言中。这个过程通常称为“代码评估”或“代码动态执行”。在Python、JavaScript等语言中,我们可以找到这样的功能,使得程序能够根据运行时的...

    Android-android执行字符串代码--实现接口可配置跳转任何Activity

    在Android应用开发中,有时我们需要根据特定的业务需求动态地执行字符串表示的代码,例如,通过接口配置来跳转到不同的Activity。这个场景通常出现在插件化开发、动态加载或运行时权限处理等复杂场景中。本文将详细...

    json工具类,java日期转换,字符串转换等各种工具类

    在Java编程中,工具类(Util Classes)是程序员日常工作中不可或缺的部分,它们提供了一系列静态方法,用于执行常见的任务,如JSON解析、日期处理、字符串操作等。以下是对标题和描述中涉及的知识点的详细说明: 1....

    java解析xml字符串

    1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这是为了将字符串转换为可以被SAXBuilder读取的形式。接着,使用`InputSource`封装`StringReader`,以便SAXBuilder能够正确识别并解析XML数据。 2...

    将字符串转换成lumbda

    将字符串转换为 Lambda 表达式可以实现这一目的,比如在 C# 的 LINQ 中,`Expression.Lambda` 可用于构建动态查询表达树。 4. **编译器/解释器支持**:不是所有语言都支持直接将字符串转换为 Lambda。有些语言提供...

    JAVA中汉字字符转化为英文字符

    - 返回一个由汉字转换后的英文字符组成的字符串。 - **实现细节**: - 使用 `getBytes()` 方法获取字符串的字节数组。 - 遍历字节数组,检查每个字节是否小于0(即非ASCII字符)。 - 如果是负数,则使用位运算 `...

    Java 实例 - 字符串小写转大写源代码-详细教程.zip

    其中,`toUpperCase()` 和 `toLowerCase()` 方法分别用于将字符串转换为大写和小写。这两个方法都返回一个新的字符串,原始字符串不会被改变,因为Java中的字符串是不可变的。 例如,假设我们有一个字符串变量 `str...

    Java开发必备:驼峰与下划线字符串快速互转工具类支持多列编辑复制转换

    4、该工具类采用了Java的开发语言,代码清晰易懂,可以快速实现字符串转换的功能,无论是初学者还是有经验的Java开发人员都可以轻松掌握。 5、使用方法: 5.1、可以单独复制一个单子,粘贴到对应的参数上,执行...

    JAVA的字符串拼接[参照].pdf

    通过字节码分析,可以更深入地了解为什么某些方法在性能上有显著差异,例如`+`操作符实际上会触发字符串连接操作的隐式转换,而`StringBuffer`和`StringBuilder`则利用了可变对象的特性来避免这种额外的开销。...

    字符串转换工具

    "字符串转换工具"是专为开发者设计的一款实用软件,旨在简化字符操作,提升开发效率。它允许用户进行一键快速替换字符拼接,这在处理大量文本数据时尤其方便。 字符串连接通常涉及到的是将多个字符串合并成一个单一...

    将输入的字符串反转 java

    这种方法涉及到将字符串转换为字符数组,然后从后向前填充一个新的字符串。 ```java public class StringReverse { public static void main(String[] args) { String input = "将输入的字符串反转"; char[] ...

    java实现文字转语音播放

    4. **文本转语音**:使用`synth.speak()`方法将字符串转换为语音并播放: ```java synth.speak("这是一段测试文本"); synth.waitUntilDone(); // 确保所有声音播放完毕再继续执行 ``` 5. **释放资源**:当不再...

    c#编程大小写字符串转换

    - 对于性能敏感的应用,需要注意字符串的不可变性带来的内存开销问题,尽量减少不必要的字符串转换操作。 #### 六、拓展知识 除了基本的大小写转换方法外,C#还提供了更多高级的字符串处理功能,例如正则表达式...

    字符串转成算式

    在编程领域,将字符串转换为算式是一项常见的任务,它涉及到解析、运算符优先级以及表达式的求值。这个过程通常分为几个步骤:预处理、分词、语法分析和计算。下面我们将详细讨论这些步骤以及相关的知识点。 1. **...

    JAVA中处理字符串的类

    总的来说,自定义的字符串工具类是提高Java编程效率的有效手段,它能帮助开发者快速地处理字符串,降低代码的复杂度,并保持代码的一致性。通过学习和使用这样的工具类,我们可以更好地理解和掌握Java中的字符串处理...

    java 字符串反转

    上述代码首先创建一个`StringBuilder`对象,将输入字符串传递给它,然后调用`reverse()`方法来反转字符串,最后通过`toString()`将其转换回字符串。 如果需要处理多个字符串,我们可以创建一个方法,接收字符串数组...

    XML文档转换成字符串

    DOM解析器将XML文档加载到内存中,形成一个可操作的树结构,然后Transformer可以将这个树结构转换为流(Stream)形式的字符串。以下代码段展示了这个过程: ```java public String doc2String(Document doc) { ...

    执行字符串形式对象的方法

    这意味着,即使代码是以字符串的形式存在,只要该字符串符合Java语法,BeanShell就能够将其转换为实际的Java行为。这对于动态执行方法或创建临时对象非常有用。 要执行字符串形式的对象方法,我们首先需要引入...

    sql快速转换成java、C代码

    这个"sql快速转换成java、C代码"的工具就是为了帮助开发者实现这一目标,它能够自动化这个过程,极大地提高开发效率。 SQL到Java转换的核心知识点: 1. **SQL语法理解**:转换工具首先需要理解SQL的基本语法,包括...

Global site tag (gtag.js) - Google Analytics