Java反射,通过对象获取属性及属性值
- 工作小总结
- 时间:2021-11-09 14:50
- 3465人已阅读
简介
在工作中,我们有时候会有很多重复的东西,唯一不一样的,可能就是对象不同,取字段什么的都是一样的。这个时候,就要不断的复制,然后修改对象。太狗屎了
🔔🔔好消息!好消息!🔔🔔
有需要的朋友👉:微信号
在工作中,我们有时候会有很多重复的东西,唯一不一样的,可能就是对象不同,取字段什么的都是一样的。这个时候,就要不断的复制,然后修改对象。太狗屎了。那么有没有不用到处复制的呢?可以使用到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;
}
}输出结果:
