public class FullValue<D,T> {
public static void main(String[] args) throws Exception {
Student student = new Student();
student.setId(UUID.randomUUID().toString());
student.setName("张三");
Teacher teacher = new Teacher();
teacher = new FullValue<Student, Teacher>().full(student, teacher);
System.out.println(teacher);
}
/**
*
* @param data 数据源
* @param target 目标对象
* @return
* @throws Exception
*/
public T full(D data,T target) throws Exception{
Objects.requireNonNull(data);
Objects.requireNonNull(target);
for (Field targetField : target.getClass().getDeclaredFields()) {
for (Field dataField : data.getClass().getDeclaredFields()) {
if (Objects.equals(targetField.getName(),dataField.getName())){
targetField.setAccessible(true);
dataField.setAccessible(true);
targetField.set(target,dataField.get(data));
break;
}
}
}
return target;
}
}