Bean拷贝
就是把一个对象值拷贝到另一个对象,属性相同的字段就会复制过去。
方法1:
org.springframework.beans包下
将a拷贝到b
BeanUtils.copyProperties(a,b)
优势:快
方法2:
org.apache.commons包下
将b拷贝到a
BeanUtils.copyProperties(a,b)
优势:部分类型可以类型转换
代码:
/**
* bean拷贝测试类
*/
public static void main(String[] args) {
FirstModel firstModel1 = new FirstModel();
FirstModel firstModel2 = new FirstModel();
SecondModel secondModel = new SecondModel();
firstModel1.setNum1(BigDecimal.ONE);
firstModel1.setNum2(BigDecimal.TEN);
System.out.println(firstModel1.getNum1());
System.out.println(firstModel1.getNum2());
//第一种(源,目标) org.springframework.beans;
BeanUtils.copyProperties(firstModel1,firstModel2);
System.out.println(firstModel2.getNum1());
System.out.println(firstModel2.getNum2());
//第二种(目标,源) org.apache.commons
//可以转换格式
try {
org.apache.commons.beanutils.BeanUtils.copyProperties(secondModel,firstModel1);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
System.out.println(secondModel.getNum1());
System.out.println(secondModel.getNum2());
}
@Data
public class FirstModel {
BigDecimal num1;
BigDecimal num2;
}
@Data
public class SecondModel {
String num1;
String num2;
}