Java反射,通过对象获取属性及属性值
- 工作小总结
- 时间:2021-11-09 14:50
- 3094人已阅读
简介
在工作中,我们有时候会有很多重复的东西,唯一不一样的,可能就是对象不同,取字段什么的都是一样的。这个时候,就要不断的复制,然后修改对象。太狗屎了
🔔🔔🔔好消息!好消息!🔔🔔🔔
有需要的朋友👉:联系凯哥
在工作中,我们有时候会有很多重复的东西,唯一不一样的,可能就是对象不同,取字段什么的都是一样的。这个时候,就要不断的复制,然后修改对象。太狗屎了。那么有没有不用到处复制的呢?可以使用到Java反射来实现。
代码如下:
package com.kaigejava.test; import java.lang.reflect.Field; public class Test { public static void main(String[] args) throws IllegalAccessException { Person p1 = new Person("张三", "高中生"); getObj(p1); } public static void getObj(Object obj) throws IllegalAccessException { Field[] fields = obj.getClass().getDeclaredFields(); for (Field field : fields) { if (!field.isAccessible()) { field.setAccessible(true); } System.out.println(field.getName() + ":" + field.get(obj)); } } } class Person { private String name; private String desc; public Person(String name, String desc) { this.name = name; this.desc = desc; } public String getName() { return name; } public Person setName(String name) { this.name = name; return this; } public String getDesc() { return desc; } public Person setDesc(String desc) { this.desc = desc; return this; } }
输出结果: