POM文件的依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.1.8.RELEASE</version>
</dependency>
Father类 father
.
import java.time.LocalDate;
/**
* @author MyHarpers 2020/5/14 21:50
*/
public class Father {
private String name;
private Long age;
private LocalDate birthday;
private String father;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getAge() {
return age;
}
public void setAge(Long age) {
this.age = age;
}
public LocalDate getBirthday() {
return birthday;
}
public void setBirthday(LocalDate birthday) {
this.birthday = birthday;
}
public String getFather() {
return father;
}
public void setFather(String father) {
this.father = father;
}
@Override
public String toString() {
return "Father [name=" + name +
", age=" + age +
", birthday=" + birthday +
", father=" + father + "]";
}
}
Son类 son
.
import java.time.LocalDate;
/**
* @author MyHarpers 2020/5/14 21:50
*/
public class Son {
private String name;
private Long age;
private LocalDate birthday;
private String son;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getAge() {
return age;
}
public void setAge(Long age) {
this.age = age;
}
public LocalDate getBirthday() {
return birthday;
}
public void setBirthday(LocalDate birthday) {
this.birthday = birthday;
}
public String getSon() {
return son;
}
public void setSon(String son) {
this.son = son;
}
@Override
public String toString() {
return "Father [name=" + name +
", age=" + age +
", birthday=" + birthday +
", son=" + son + "]";
}
}
测试类Test
import org.springframework.beans.BeanUtils;
import java.time.LocalDate;
import java.util.Optional;
/**
* @author MyHarpers 2020/5/14 21:59
*/
public class Test {
private static Son convertToSon(Father father) {
return Optional.ofNullable(father)
.map(o -> {
Son entity = new Son();
BeanUtils.copyProperties(father, entity);
return entity;
}).orElseThrow(IllegalArgumentException::new);
}
public static void main(String[] args) {
Father father = new Father();
father.setAge(8L);
father.setBirthday(LocalDate.now());
father.setName("姓名");
father.setFather("父亲");
System.out.println(father);
Son son = convertToSon(father);
System.out.println(son);
son.setSon("儿子");
System.out.println(son);
}
}
输出的消息
Father [name=姓名, age=8, birthday=2020-05-14, father=父亲]
Father [name=姓名, age=8, birthday=2020-05-14, son=null]
Father [name=姓名, age=8, birthday=2020-05-14, son=儿子]