深度初始化Java Bean属性

时间:2008-10-22 05:44:38

标签: java javabeans

您是否还在初始化java bean值?比方说,例如:

([g | s] etters省略)

public class SomeClass {

    private String foo;

    private Date bar;

    private Baz someObject;

}

(是的,这是一个POJO被用作bean而不是最严格意义上的Java Bean)

在空构造函数中,您是初始化这些成员,还是什么都不做?同样,Baz也会对其成员进行初始化吗?

或者你只是将它们留空?

2 个答案:

答案 0 :(得分:1)

这取决于用例。

如果我使用属性作为服务依赖项,则应将它们初始化为正常运行(顺便说一下,Spring DI有一些方便的方法)。

如果我使用bean作为域模型的一部分,那么拥有一些null属性通常是非法状态。它可能不会在启动时初始化,但如果某个字段在业务操作期间为空,我就会抛出IllegalStateException。

答案 1 :(得分:0)

如果可能的话,如果需要初始化,我会在声明时初始化变量。这些初始化语句实际上最终会从构造函数中调用。

如果没有令人信服的理由来初始化它们,我通常会将它们保留为空。