谁能解释为什么枚举变量名不能与枚举名相同?如果它是常规类,它将起作用,但由于某种原因,enum无效。例子不起作用->
someEnumType someEnumType = someEnumType.TYPE1;
参见JLS Sec 6.3(添加了重点)(*):
块中的局部变量声明的范围(第14.4节)是该声明在其中出现的其余部分,从其自己的初始化程序开始,并在该局部变量声明语句的右侧包括其他任何声明符。
在
someEnumType someEnumType = someEnumType.TYPE1;
Run Code Online (Sandbox Code Playgroud)
Java认为someEnumType右侧的是指尚未明确分配的变量。
(*)此规则的有趣结果之一是这是合法的:
String s = s = "hello!";
Run Code Online (Sandbox Code Playgroud)
(对于那些您确实非常想分配变量的情况)。
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |