我见过一个包含几个块的方法:
public class SomeClass {
public void someMethod() {
{
...
}
{
...
}
{
...
}
}
}
与通常的方法相比,这种结构有什么好处(将每个块的代码放入自己的方法并从someMethod
调用它们)?
该来源的作者是这样写的原因是什么?
答案 0 :(得分:4)
它们可用于组织局部变量:
{
List<String> someTemporaryThing = getTemporaryThing();
processTemporaryThing1(someTemporaryThing);
processTemporaryThing2(someTemporaryThing);
}
// other code that doesn't need to see someTemporaryThing
当然,如果你在其中一行中有多行,那么将它作为一个单独的方法可能是个好主意。
我还没有找到任何其他用途。
答案 1 :(得分:1)
这是C的遗留问题,最初只能在代码块的开头声明变量(即在{
之后)。
在Java中,只有正如您所说的那样,您不希望将这些块中的代码移动到单独的方法中,而是希望将其变量保留在方法的范围之外,这样才有用。 。理论上,与将这些东西带到方法相比,这可以使性能有所提高。