确保在 java 中调用 init 方法的好方法是什么?我看到的替代方案是
- 不要测试它,让方法自己失败,很可能是
NullPointerException
- 测试方法是否已初始化或抛出
public void foo() {
if (!inited) {
throw new IllegalArgumentException("not initalized");
}
...
}
- 德拉盖特
public void foo() {
if (!inited) {
throw new IllegalArgumentException("not initalized");
}
fooInternal();
}
private void fooInternal(){ ... };
- 始终初始化,否则将 init 设为 noop
public void foo() {
init();
...
}
public void init() {
if(!inited) {
...
}
}
- 静默初始化
public void foo() {
if (!inited) {
init();
}
...
}
这些方法中的大多数都非常冗长,并降低了整体可读性。