Java中带有条件块的变量声明

时间:2018-11-27 21:29:08

标签: java

在以下两种情况下,我都不需要条件块之外的名称。这些方法中哪个更好,为什么?

方法1

String name = null
if(){
name = "hello";
} else {
name = "carlo"
}

方法2

  if(){
    String name = "hello";
    } else {
    String name = "carlo"
    }

1 个答案:

答案 0 :(得分:3)

如果您更想使用在else块结束后设置的name值,则第一种方法更好,因为第二种方法无法编译。 name变量在if / else块之外不可见。

在不太可能的情况下,您打算将它们视为单独的变量并分别处理,方法2更好,因为它可以使每个变量的范围更局部,从而使代码更具模块化。

更新:更改问题后,很明显,您想要第二种(“可能性较小”)情况。因此,在您的情况下,方法2更好。