BeanUtils.copyProperties不同属性名称如何实现对象拷贝
时间: 2023-07-20 11:28:34 浏览: 102
如果源对象和目标对象的属性名称不一致,可以使用BeanUtils.copyProperties(source, target)中的target中的属性名称和source中的属性名称不同,但是属性类型和属性值相同的情况下,可以使用BeanUtils.copyProperties(Object source, Object target, String[] ignoreProperties)方法,其中ignoreProperties参数指定了需要忽略的属性名称。具体实现方法如下:
1. 定义一个源对象和目标对象,属性名称不同:
```java
public class Source {
private String name;
private int age;
// getter和setter方法省略
}
public class Target {
private String username;
private int userAge;
// getter和setter方法省略
}
```
2. 在使用BeanUtils.copyProperties()时,指定ignoreProperties参数:
```java
public static void main(String[] args) {
Source source = new Source();
source.setName("Tom");
source.setAge(18);
Target target = new Target();
String[] ignoreProperties = {"name", "age"};
BeanUtils.copyProperties(source, target, ignoreProperties);
System.out.println(target.getUsername()); // Tom
System.out.println(target.getUserAge()); // 18
}
```
在上述代码中,我们将源对象的"name"和"age"属性忽略掉,只拷贝了属性值相同的"username"和"userAge"属性。
阅读全文