需求
在做开发时,碰到了这样的一个问题,就是前端需要传回表格数据,但是表头也需要回传;这样能够最大限度的复用;由于传回的表格数据和表头都是不一样的;所以需要后台对表头数据进行组织;但是我们在后台一般都是传list;比如,我们声明了实体类person{name,value},那么我们在回传表头的时候,就需要构造一个
tabletitle[
{"label":"名称","prop":"name"},
{"label":"值","prop":"value"}
]
格式是前端element-ui规定的
所以当我们后台构建了不同的类时,传回的tabletitle是不同的,那么,我们期望能通过一种方法,可以根据实体类,自动构造出不同的表头数据;
需求分析
根据以上需求,我们需要知道实体类的相关字段,根据字段去分别分析对应的实体数据,然后分别赋值即可
用到的方法
这里就不得不用到java的反射机制,拿到对应的实体类,进行遍历赋值
解决思路及归纳总结
1 如何拿到实体类的字段
2 对拿到的数据进行处理
验证
这里验证采用springboot框架,只验证功能
1 这里我建立了个test实体类
通过下面的方式去获取反射后的实体类,没问题;
然后总结一下,总共有三种方式可以获取反射,如下图
2 对拿到的数据进行处理;既然我们已经拿到了反射后的实体,那么就需要做一些增删改差,这里我只需要对其进行字段遍历赋值即可,所以我需要做的事情有如下几点:
(1) 获取字段
(2) 进行遍历赋值
基本没什么问题;下面我把反射常用的方法进行总结归纳一下.
| 方法 | 解释 |
|---|---|
| getName() | 获取类的完整名字,也就是包含路径的名称 |
| getFields() | 获得类的public类型的属性,像private等私有的是拿不到的 |
| getDeclaredFields() | 获得类的所有属性。包括private 声明的和继承类 |
| getMethods() | 获得类的public类型的方法 |
| getDeclaredMethods() | 获得类的所有方法。包括private 声明的和继承类 |
| getMethod(String name, Class[] parameterTypes) | 获得类的特定方法,name参数指定方法的名字,parameterTypes 参数指定方法的参数类型 |
| getConstructors() | 获得类的public类型的构造方法 |
| getConstructor(Class[] parameterTypes) | 获得类的特定构造方法,parameterTypes 参数指定构造方法的参数类型 |
| newInstance() | 通过类的不带参数的构造方法创建这个类的一个对象 |

5万+

被折叠的 条评论
为什么被折叠?



