关注公众号:”奇叔码技术“
回复:“java面试题大全”或者“java面试题”
即可领取资料
一、Hutool BeanUtils.copyProperties的四种用法 空不拷贝/忽略拷贝/空不和忽略拷贝/全拷贝
1、第一种用法: BeanUtils.copyProperties(三个参数) 不为空则拷贝,空则用旧值
public static void main(String[] args) {
Person person = new Person("sdfsd",null);
Person person2 = new Person("嘤嘤嘤",22);
CopyOptions options = CopyOptions.create()
.setIgnoreNullValue(true) // 忽略源对象属性为空的情况
.setIgnoreError(true); // 忽略复制过程中出现的错误
BeanUtil.copyProperties(person, person2, options);
System.out.println(person);
System.out.println(person2);
}
结果:
Person(name=sdfsd, age=null)
Person(name=sdfsd, age=22)
2、第二种用法:BeanUtils.copyProperties(三个参数) 指定哪个属性值忽略拷贝,即保留原来的值。
public static void main(String[] args) {
Person person = new Person("sdfsd",3344);
Person person2 = new Person("嘤嘤嘤",22);
CopyOptions options = CopyOptions.create()
.setIgnoreProperties("age"); // 忽略"age"属性的拷贝
BeanUtil.copyProperties(person, person2, options);
System.out.println(person);
System.out.println(person2);
}
结果:
Person(name=sdfsd, age=3344)
Person(name=sdfsd, age=22)
3、第三种用法:BeanUtils.copyProperties(三个参数) 不为空则拷贝,空则用旧值 并且 指定哪个属性值忽略拷贝,即保留原来的值。
public static void main(String[] args) {
Person person = new Person("sdfsd",null);
Person person2 = new Person("嘤嘤嘤",22);
CopyOptions options = CopyOptions.create()
.setIgnoreNullValue(true) // 忽略源对象属性为空的情况
.setIgnoreError(true) // 忽略复制过程中出现的错误
.setIgnoreProperties("name"); // 忽略"name"属性的拷贝
BeanUtil.copyProperties(person, person2, options);
System.out.println(person);
System.out.println(person2);
}
结果:
Person(name=sdfsd, age=null)
Person(name=嘤嘤嘤, age=22)
4、第四种用法:BeanUtils.copyProperties(两个参数) 全都会拷贝,空值也拷贝
public static void main(String[] args) {
Person person = new Person("sdfsd",null);
Person person2 = new Person("嘤嘤嘤",22);
BeanUtil.copyProperties(person, person2);
System.out.println(person);
System.out.println(person2);
}
结果:
Person(name=sdfsd, age=null)
Person(name=sdfsd, age=null)
二、Person类和依赖:
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class Person{
private String name;
private Integer age;
}
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.5</version>
</dependency>
三、最后!!!
点赞
评论
关注我
END
下篇来临!