package com.zy.common.utils;
|
|
import com.core.exception.CoolException;
|
|
import java.beans.BeanInfo;
|
import java.beans.Introspector;
|
import java.beans.PropertyDescriptor;
|
import java.lang.reflect.Method;
|
|
/**
|
* Created by vincent on 2022/4/1
|
*/
|
public class Synchro {
|
|
public static void Copy(Object source, Object dest) {
|
try {
|
BeanInfo sourceBean = Introspector.getBeanInfo(source.getClass(),Object.class);
|
PropertyDescriptor[] sourceProperty = sourceBean.getPropertyDescriptors();
|
BeanInfo destBean = Introspector.getBeanInfo(dest.getClass(),Object.class);
|
PropertyDescriptor[] destProperty = destBean.getPropertyDescriptors();
|
for (PropertyDescriptor propertyDescriptor : sourceProperty) {
|
for (PropertyDescriptor descriptor : destProperty) {
|
if (propertyDescriptor.getName().equals(descriptor.getName()) && propertyDescriptor.getPropertyType() == descriptor.getPropertyType()) {
|
Method readMethod = propertyDescriptor.getReadMethod();
|
Method writeMethod = descriptor.getWriteMethod();
|
if (null != writeMethod && null != readMethod) {
|
writeMethod.invoke(dest, readMethod.invoke(source));
|
}
|
}
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
throw new CoolException("属性复制失败:" + e.getMessage());
|
}
|
}
|
|
}
|