什麼,以確保一個init方法是Java調用的好方法嗎?我看到的替代品的Java init方法
- 不要測試了,如果讓方法初始化的方法本身出現故障,很可能是由
NullPointerException
- 測試或拋出
public void foo() {
if (!inited) {
throw new IllegalArgumentException("not initalized");
}
...
}
- Delagate
public void foo() {
if (!inited) {
throw new IllegalArgumentException("not initalized");
}
fooInternal();
}
private void fooInternal(){ ... };
- 總是初始化,使初始化一個空操作,否則
public void foo() {
init();
...
}
public void init() {
if(!inited) {
...
}
}
- 默默的init
public void foo() {
if (!inited) {
init();
}
...
}
大多數這些方法都非常冗長,降低整體可讀性。
是什麼'的init()'實際上呢?是否需要爲每個類的每個實例調用它或每個應用程序調用一次?你不能把相關的代碼放到類的構造函數中嗎? –
好問題,我想一個'INIT-once'類型的行爲 –
您可以使用一個靜態初始化塊對一個類進行一次初始化。 –