java - 如何避免错过在 POJO 中设置字段的值?
问题描述
我有一个包含数十个字段的 POJO,我必须设置所有字段的值。
如何避免忘记设置某些字段的值?
// POJO
public class Employee {
private Date birthday;
private String firstName;
private String lastName;
private String birthOfPlace;
// ...
// setters and getters
}
// Main class
public class MainClass {
public static void main(String[] args) {
Employee employee = new Employee();
// Call all the setters of Class Employee
employee.setFirstName("Jack");
employee.setLastName("Reed");
employee.setBirthOfPlace("Iceland");
// Oops, forget to call setBirthday()
}
}
解决方案
在您的类中使用带有所需参数的构造函数的内部 Builder 类,例如firstName
:
public static class Builder {
private String firstName;
private String lastName;
public Builder(String firstName) {
this.firstName= firstName;
}
public Builder lastName(String lastName) {
lastName = lastName;
return this;
}
确保您只能通过 Builder 创建对象
推荐阅读
- windows - 如何通过ansible(在unix平台上运行)管理sql server(在windows server上运行)?
- spring-webflux - 如何使用 Spring Webflux 和 Webclient 处理嵌套的 json
- reactjs - 多级下拉菜单 - 反应
- ffmpeg - 有没有办法从传入的 h.264 流中存储数据包头信息?
- apache - 将所有移动流量重定向到桌面,特定路径除外
- homebrew-cask - 来自木桶命令的奇怪输出
- ssh - 更改 SSH 默认主机
- python - 如果单词包含某些字符,则替换它
- git - 用本地文件覆盖整个远程文件
- java - 如何将时间字符串转换为日期和时间格式?