public class MyTestClass {
public static void main(String[] args) {
new MyTestClass().myMethod();
}
public void myMethod(){
{
//do something
}
{
//do something
}
{
//do something
}
}//method close
}//class close
这样做有什么好处?我见过这种代码。
答案 0 :(得分:23)
做这种事并不常见,我不会这样做。
那些内部块(即{ ... }
)可以用于以下几个目的:
块限制在其中声明的任何变量的范围; e.g。
public void foo() {
int i = 1;
{
int j = 2;
}
// Can't refer to the "j" declared here. But can declare a new one.
int j = 3;
}
但是,我不建议这样做。 IMO,最好使用不同的变量名称或将代码重构为更小的方法。无论哪种方式,大多数Java程序员都会认为{
和}
是令人讨厌的视觉混乱。
可以使用块来附加标签。
HERE : {
...
break HERE; // breaks to the statement following the block
...
}
然而,在实践中,你几乎看不到带标签的断言。而且因为它们非常不寻常,所以它们往往会使代码的可读性降低。
答案 1 :(得分:5)
public void stuff() {
int i = 48;
{
int i = 21;
System.out.println(i); // prints 21
}
System.out.println(i); // prints 48
}
基本上,这是一种创建小于整个功能的范围的方法......好处?让人们在理解之前更长时间地盯着你的代码...... IMO风格不好,应该避免
答案 2 :(得分:-1)
它定义括号内的变量范围,有些人会说它更清晰或更有条理我确定。
我个人不会推荐它。