如果您有一个Java enum和一个枚举类型的变量,如下所示:
public enum Something
{
VAL1,
VAL2,
VAL3
}
public Something varName;
Run Code Online (Sandbox Code Playgroud)
为什么有必要写varName = Something.VAL1;而不是简单varName = VAL1;?编译器不应该知道varName它只能采用null,VAL1和VAL2,以及VAL3作为值的类型吗?
=语句的右侧是一个表达式,通常会进行解析.无论如何,要说明编译器如何复杂,请考虑以下事项:
public enum Something { VAL1, VAL2, VAL3 }
Something VAL3 = Something.VAL1;
Something a = VAL3;
Run Code Online (Sandbox Code Playgroud)
应该a分配VAL1还是VAL3?
您不需要枚举名称的唯一时间是在switch语句中,因为case语句必须使用有效的枚举值,因此枚举名称是不必要的.
switch (a) {
case VAL1:
// do something
break;
case VAL2:
// do something
break;
case VAL3:
// do something
break;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |