多个对象与更改一个对象

时间:2011-12-26 22:54:34

标签: java coding-style

我今天看到了一些关于此的话:

aClass something;
while (condition) {
    something = new aClass();
    ...
}
while (condition) {
    aClass something = new aClass();
    ...
}

它说你应该使用第二个而不是第一个。这是真的,如果是的话,为什么?

3 个答案:

答案 0 :(得分:4)

您的第一个示例将无用变量泄漏到外部范围。

答案 1 :(得分:1)

您应该使用第二个示例,除非在while循环完成后需要使用该对象。如果您不需要外部作用域中的变量,最好将其声明在将使用它的最窄范围内(在循环内)。这简化了必须理解它的维护程序员的代码。

答案 2 :(得分:1)

第二种方法仅将something变量保留在特定循环迭代的范围内。
如果要在循环外使用对象和/或保持迭代之间保存的更改,则必须使用第一种方法。

此外,第二种方法没有定义多个变量,编译器通常会以确保只定义一个变量的方式对其进行优化。