Discuss / Java / 不同作用域下的同名变量可能引发的某些问题

不同作用域下的同名变量可能引发的某些问题

Topic source

Reason

#1 Created at ... [Delete] [Delete and Lock User]

若在外部作用域内已经声明了变量,那么不可以在内部作用域声明与之同名的变量,否则会出现编译时异常。原因是Java并没有像C和C++那样在外部作用域中屏蔽内部作用域的变量。如下面的代码

{
  int x = 5;
  {
    int x =3;
  }
}
{
  {
    int x =3;
  }
  int x = 5;
}
这样定义是可以的

⌓‿⌓​

#3 Created at ... [Delete] [Delete and Lock User]

2楼的可以是因为x在下一次定义前已经出作用域了,别重复用最好


  • 1

Reply