反射机制Reflection 简单的理解就是对class类的运用,在项目当中,适用于很多独特的场景,比如我们项目中的需求,1 我这边有两条数据,我主要知道两条数据哪些字段做了变更;2 我们跟别的webServer做联调,适配推送过去的字段等等。
1 几个注意核心类和方法
- Field : 提供有关类或接口的单个字段的信息和动态访问。
getName() :返回此Field对象表示的字段的名称.
getType(): 返回一个Class对象,该对象标识此Field对象表示的字段的声明类型 。 - getDeclaredField(String name) : 返回一个Field对象。
- getDeclaredFields() :返回一个Field数组
- 当然用的的不止这些,具体看业务和Class 文档
2 生成公共类
public class Conversion {
//将model中与entity中类型和名称相同的属性值赋值给对应的entity的属性,并返回entity
public static <T1, T2> T2 TypeConversion(T1 model, T2 entity) {
List<Map<String, Object>> modelList = getFiledInfo(model);
List<Map<String, Object>> entityList = getFiledInfo(entity);
for (Map e : entityList) {
for (Map m : modelList) {