如何指定Java Object初始化的顺序

时间:2013-06-27 00:20:03

标签: java hibernate java-ee reflection

我有以下课程:

public class Action implements Serializable {
    private Logger log = Logger.getLogger(Action.class);
    private Integer actionID;
    private Integer actionStatus;
    private User    user;
    private Date    actionDueDate;

    public Action(User user) {
    this.setUser(user);
}

public Action() {
}

     getters...
     setters...
}

我需要在初始化user之前初始化actionDueDate属性,因为actionDueDate取决于用户的时区。 我可以使用立即调用的构造函数来初始化用户,但我使用的是Hibernate,它使用默认构造函数来填充对象。 如何确保user属性始终在actionDueDate属性之前初始化。我应该遵循什么方法。 有没有办法确保可以在Java中指定初始化顺序? 感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

没有标准的方法来指定Java中的初始化顺序(可能在Hibernate中)。

试试这个:

  • 在setActionDueDate中验证用户“是否已经存在”(user!= null),如果是,则初始化actionDueDate,否则将其“未初始化的值”存储在其他位置。

  • 在setUser中验证actionDueDate是否已“存储”。如果是,则完成初始化,否则保持原样。

这将涵盖两种可能的情况。