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)
哪一个是可取的?
选择第二种情况:在代码中有一条路径,其中创建的对象只是被丢弃并被另一个替换.
最好无条件地初始化您的对象:您可以通过使用三元运算符选择适当的选项来完成此操作,如下所示:
set s = flagEnabled ? generateSet() : new set();
Run Code Online (Sandbox Code Playgroud)
条件逻辑保持不变,但现在它与初始化相结合,使您的意图更容易看到.