在使用Bean Utils填充POJO时为字段设置默认值,可以通过以下步骤来实现:
populate(Object bean, Map<String, ? extends Object> properties)
方法来填充POJO对象。将目标POJO对象和源对象作为参数传入该方法。以下是一个示例代码:
import org.apache.commons.beanutils.BeanUtils;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 创建一个源对象,包含要填充到目标POJO中的属性值
Map<String, Object> sourceMap = new HashMap<>();
sourceMap.put("name", "John");
sourceMap.put("age", 25);
// 创建目标POJO对象
User user = new User(); // 假设这是要填充的POJO类
try {
// 使用BeanUtils填充POJO对象,并为字段设置默认值
BeanUtils.populate(user, sourceMap);
} catch (IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
// 打印填充后的POJO对象
System.out.println(user.getName()); // 输出:John
System.out.println(user.getAge()); // 输出:25
System.out.println(user.getGender()); // 输出:null(默认值)
}
}
class User {
private String name;
private int age;
private String gender; // 假设这个字段没有在源对象中设置属性值
public User() {
this.gender = "Unknown"; // 为字段设置默认值
}
// 省略getter和setter方法
}
在这个例子中,我们使用BeanUtils填充了一个名为User的POJO对象。源对象中包含了要填充到User对象的属性值,包括name和age。User对象的gender字段没有在源对象中设置属性值,因此会保持其默认值。输出结果中可以看到,name和age字段的值已经成功填充,而gender字段保持了默认值"Unknown"。
腾讯云相关产品推荐:
以上推荐的腾讯云产品是根据填充POJO时设置默认值的问题背景,从功能和应用场景的角度提供的示例。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云