copyProperties java 将 实体类复制一个新的相同的实体类 不复制空值
时间: 2024-12-08 19:22:24 浏览: 31
在Java中,如果你想从一个实体类创建一个新的实例并复制除了空值之外的所有属性,你可以使用`BeanUtils.copyProperties()`方法,它是一个非常方便的工具来自Spring框架。首先,你需要包含`commons-beanutils`库。
以下是一个简单的示例:
```java
import org.apache.commons.beanutils.BeanUtils;
public class EntityCopyExample {
public static void main(String[] args) {
// 假设你有User类
User original = new User();
original.setName("John");
original.setAge(30);
original.setEmail("john@example.com");
// 新建一个User的副本,我们只复制非空属性
User copy = new User();
try {
// 使用BeanUtils.copyProperties过滤掉null值
BeanUtils.copyProperties(copy, original, "name", "age", "email");
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Copied User:");
System.out.println(copy);
}
}
class User {
private String name;
private Integer age;
private String email;
// getters and setters...
}
```
在这个例子中,`copyProperties`会跳过`original`对象中名字为"email"的属性,因为它们的值为`null`。所以,复制后的`copy`对象只有"name", "age"属性会被设置。
阅读全文