对象字段要一致
输入
public class BeanUtilsTest {
public static void main(String[] args) {
User user = new User();
user.setIsMarried_(true);
user.setAge_(11);
user.setName_("玛丽");
System.out.println("user: " + user);
Person person = new Person();
BeanUtils.copyProperties(user, person);
System.out.println("person: " + person);
}
}
@Getter
@Setter
@ToString
class User {
String name_;
Integer age_;
Boolean isMarried_;
}
@Setter
@Getter
@ToString
class Person {
String name;
Integer age;
Boolean isMarried;
Boolean isMale;
}
输出
user: User(name_=玛丽, age_=11, isMarried_=true)
person: Person(name=null, age=null, isMarried=null, isMale=null)
对象类型要一致
输入
public class BeanUtilsTest {
public static void main(String[] args) {
User user = new User();
user.setIsMarried(true);
user.setAge(11);
user.setName("玛丽");
System.out.println("user: " + user);
Person person = new Person();
BeanUtils.copyProperties(user, person);
System.out.println("person: " + person);
}
}
@Getter
@Setter
@ToString
class User {
String name;
Integer age;
Boolean isMarried;
}
@Setter
@Getter
@ToString
class Person {
String name;
short age;
Boolean isMale;
String isMarried;
}
输出
user: User(name=玛丽, age=11, isMarried=true)
person: Person(name=玛丽, age=0, isMale=null, isMarried=null)
不拷贝复杂类型
输入
public class BeanUtilsTest {
public static void main(String[] args) {
User user = new User();
user.setIsMarried(true);
user.setAge(11);
user.setName(new ArrayList<>(List.of("玛丽", "莉莉", "丽丽")));
System.out.println("user: " + user);
Person person = new Person();
// 进行浅拷贝
BeanUtils.copyProperties(user, person);
System.out.println("person: " + person);
List<String> name = person.getName();
name.add("1");
System.out.println("user: " + user);
System.out.println("person: " + person);
}
}
@Getter
@Setter
@ToString
class User {
List<String> name;
Integer age;
Boolean isMarried;
}
@Setter
@Getter
@ToString
class Person {
List<String> name;
Integer age;
Boolean isMarried;
Boolean isMale;
}
输出
user: User(name=[玛丽, 莉莉, 丽丽], age=11, isMarried=true)
person: Person(name=[玛丽, 莉莉, 丽丽], age=11, isMarried=true, isMale=null)
user: User(name=[玛丽, 莉莉, 丽丽, 1], age=11, isMarried=true)
person: Person(name=[玛丽, 莉莉, 丽丽, 1], age=11, isMarried=true, isMale=null)