2008-10-22 64 views
1

您是否麻煩初始化java bean值?說,例如:深度初始化Java Bean屬性

([G | S]埃特斯省略)

public class SomeClass { 

    private String foo; 

    private Date bar; 

    private Baz someObject; 

} 

(是的,這是被用作豆而不是一個Java Bean在嚴格意義上的POJO)

在空的構造函數中,是否初始化這些成員,或者什麼都不做?同樣,巴茲是否會初始化它的成員呢?

或者你只是將它們保留爲空?

回答

1

這取決於用例。

如果我使用屬性作爲服務依賴性,它們應該被初始化爲正常運行(順便說一句,Spring DI有方便的方法來做)。

如果我使用bean作爲域模型的一部分,那麼通常具有一些null屬性是非法的狀態。它可能不會在啓動時初始化,但如果在業務操作期間某個字段爲空,我會拋出IllegalStateException異常。

0

如果可能的話,我會在聲明時初始化變量,如果它們需要初始化的話。這些初始化語句實際上是從構造函數調用的。

如果沒有令人信服的理由來初始化它們,我通常會將它們保留爲空。