基于点注释的Java嵌套POJO更新

标签 java

我有一个像这样定义的嵌套 POJO 结构,

public class Employee {
    private String id;
    private Personal personal;
    private Official official;
}
public class Personal {
    private String fName;
    private String lName;
    private String address;
}
public class Official {
    private boolean active;
    private Salary salary;
}
public class Salary {
    private double hourly;
    private double monthly;
    private double yearly;
}
我从带有 dot annotaion 的服务中获取更新,说明更改了什么值,例如,
id change --> id=100
address change --> personal.address=123 Main Street 
hourly salary change --> official.salary.hourly=100
这种 POJO 结构可以是 3-4 级深度。我需要查找这个传入的更改值并更新 POJO 中的相应值。最好的方法是什么?

最佳答案

如果您想创建允许您编辑字段的 Java 对象。您可以使用 public/default/protected 访问修饰符指定对象字段。这将使您能够获取和设置字段,例如 personal.addressofficial.salary.hours由于不再封装对象并且欢迎任何调用方法来操作对象,因此这种方法通常不受欢迎。如果这些字段没有用 getter 和 setter 封装,你的对象就不再是 POJO .public提供从任何地方访问。default提供从任何包的访问protected提供从包或子类的访问。

public class Employee {
    public String id;
    public Personal personal;
    public Official official;
}

public class Personal {
    public String fName;
    public String lName;
    public String address;
}

关于基于点注释的Java嵌套POJO更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63643628/

相关文章:

java - 当我无法输入重复的数据库条目时,如何知道?

Java 代理设置

java - 我们可以挑出一个警报(例如 "Web Browser XSS Protection Not Enabled")并在 ZAP 代理中重新运行吗

java - 为什么我无法将 TextArea 中的文本与字符串进行比较?

java - 我在 Eclipse 插件开发中尝试检测用户的选择时遇到错误 "NullPointExeption"

Java编程帮助

java - 如何提高以下程序 "Remove duplicates from an array"的时间复杂度?

java - Maximo setWhere() 查询以获得不同的结果?

java - 移动位图不平滑并且不平稳

java - 错误。数据库查询同时添加到多个列表