先简单介绍下反射的概念:java反射机制是在运行状态
中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制
。
反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以在运行时装配。在实际的业务中,可能会动态根据属性去获取值。
工具类如下:
1 | package com.yaoguang.common.utils.field; |
测试用例如下:
1 | /** |
还有一种将字符串转换成java代码并执行的方法:Java Expression Language (JEXL)
是一个表达式语言引擎,可以用来在应用或者框架中使用。
JEXL受Velocity和JSP 标签库 1.1 (JSTL) 的影响而产生的,需要注意的是,JEXL 并不是 JSTL 中的表达式语言的实现。
需要先添加jar包,maven配置如下:
1 | <dependency> |
主要实现步骤:
- 拿到结果集
- 构建语言表达式
- 动态构建
核心代码如下:
1 | public class DyMethodUtil { |
测试示例如下:
1 | /** |