/**
* copy赋值对象
* @param assignmentModel 赋值的对象
* @param sourceModel 来源对象
*/
public static void copyProperty(Object assignmentModel,Object sourceModel) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException{
//新的class
Class sourceClass = sourceModel.getClass();
//老的class
Class assignClass = assignmentModel.getClass();
//该类所有的属性
Field[] sourceFields = sourceClass.getDeclaredFields();
//新的属性
Field sourceField = null;
//老的属性
Field assignField = null;
for(Field f : sourceFields){
//类中的属性名称
String fieldName = f.getName();
//通过属性名称获取属性
sourceField = sourceClass.getDeclaredField(fieldName);
//获取属性的值时需要设置为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。
//值为 false 则指示反射的对象应该实施 Java 语言访问检查。
sourceField.setAccessible(true);
//根据属性获取对象上的值
Object newObject = sourceField.get(sourceModel);
//过滤空的属性或者一些默认值
if (isContinue(newObject)) {
continue;
}
assignField = assignClass.getDeclaredField(fieldName);
assignField.setAccessible(true);
assignField.set(assignmentModel, newObject);
}
}
* copy赋值对象
* @param assignmentModel 赋值的对象
* @param sourceModel 来源对象
*/
public static void copyProperty(Object assignmentModel,Object sourceModel) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException{
//新的class
Class sourceClass = sourceModel.getClass();
//老的class
Class assignClass = assignmentModel.getClass();
//该类所有的属性
Field[] sourceFields = sourceClass.getDeclaredFields();
//新的属性
Field sourceField = null;
//老的属性
Field assignField = null;
for(Field f : sourceFields){
//类中的属性名称
String fieldName = f.getName();
//通过属性名称获取属性
sourceField = sourceClass.getDeclaredField(fieldName);
//获取属性的值时需要设置为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。
//值为 false 则指示反射的对象应该实施 Java 语言访问检查。
sourceField.setAccessible(true);
//根据属性获取对象上的值
Object newObject = sourceField.get(sourceModel);
//过滤空的属性或者一些默认值
if (isContinue(newObject)) {
continue;
}
assignField = assignClass.getDeclaredField(fieldName);
assignField.setAccessible(true);
assignField.set(assignmentModel, newObject);
}
}
* 是否跳出这次循环
* @param object
* @return
*/
private static boolean isContinue(Object object){
if (object == null || "".equals(object)) {
return true;
}
String valueStr = object.toString();
if ("0".equals(valueStr) || "0.0".equals(valueStr)) {
return true;
}
return false;
}