什么,以确保一个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'类型的行为 –
您可以使用一个静态初始化块对一个类进行一次初始化。 –