在工作中,我们有时候会有很多重复的东西,唯一不一样的,可能就是对象不同,取字段什么的都是一样的。这个时候,就要不断的复制,然后修改对象。太狗屎了。那么有没有不用到处复制的呢?可以使用到Java反射来实现。
代码如下:
代码语言:javascript复制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;
}
}
输出结果: