版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Milogenius/article/details/88808819
在我们平时开发中,可能会涉及两个实体,它们之间有很多重复字段,那么如何将其中一个实体的信息赋值到另外一个实体?这就是我们今天要探讨的问题.
一.场景再现
类一:
package com.milogenius.bean;
/**
* @Auther: Milogenius
* @Date: 2019/3/25 22:06
* @Description:
*/
public class Animal {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
类二:
package com.milogenius.bean;
/**
* @Auther: Milogenius
* @Date: 2019/3/25 22:06
* @Description:
*/
public class Dog {
private String name;
private int age;
private String type;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
观察上面两个类,我们发现,两个类有共同的字段name和age,接下来我们来看看如何赋值;
二.解决方案
package com.milogenius.bean;
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.BeanUtils;
/**
* @Auther: Milogenius
* @Date: 2019/3/25 22:11
* @Description:
*/
public class AnimalTest {
public static void main(String[] args) {
Animal animal = new Animal();
animal.setAge(8);
animal.setName("球球");
Dog dog = new Dog();
System.out.println("dog赋值前:"+ JSONObject.toJSONString(dog));
BeanUtils.copyProperties(animal,dog);
System.out.println("dog赋值后:"+ JSONObject.toJSONString(dog));
}
}
我们看到,通过spring提供的BeanUtils工具类中的copyProperties方法,我们成功实现了实体间的赋值操作.
三.总结
上面用到的工具类还有很多方法,这里就不一一介绍,有兴趣的小伙伴可以研究,反正以后遇到bean之间的操作,能想到有这个工具类就行,先到里面看看有没有适合自己,已经写好的方法就行.