编程最佳实践:初始化或不初始化

Sir*_*raa 0 java initialization

哪个更好 ?

情况1 :

set = new set<>();

if(flagEnabled) {
  set = generateSet();
}

update(set);
Run Code Online (Sandbox Code Playgroud)

案例2:

set; // no initialization

if(flagEnabled) {
  set = generateSet();
} else {
  set = new set();
}

update(set);
Run Code Online (Sandbox Code Playgroud)

哪一个是可取的?

das*_*ght 5

选择第二种情况:在代码中有一条路径,其中创建的对象只是被丢弃并被另一个替换.

最好无条件地初始化您的对象:您可以通过使用三元运算符选择适当的选项来完成此操作,如下所示:

set s = flagEnabled ? generateSet() : new set();
Run Code Online (Sandbox Code Playgroud)

条件逻辑保持不变,但现在它与初始化相结合,使您的意图更容易看到.