枚举常量使用int类型以外的表达式定义。为何会报错
时间: 2024-10-01 07:06:12 浏览: 34
C++基本数据类型和表达式ppt课件.ppt
枚举常量在Java中通常用于创建一组预定义的、有限的值集合。它们定义时必须使用整型数值,因为枚举本质上是特殊的类,其成员默认是静态且final的int类型的值,这个值被称为“ordinal”。如果你想使用非整型表达式定义,比如字符串或其他数据类型,Java编译器会报错,因为它期望的是枚举常量能通过数字索引来唯一标识。
例如,这行代码就会报错:
```java
public enum Color { RED("red"), GREEN(0); // 这里 "RED" 就不是有效的int值
```
正确的做法是使用整数作为基础,然后提供一个toString()方法来获取实际的字符串表示:
```java
public enum Color { RED(0), GREEN(1);
private String name;
Color(int value) {
this.name = this.name().toLowerCase();
}
public String getName() {
return name;
}
}
```
阅读全文