常见用法
常见用法
判断两个枚举值相等是用==还是equal():直接使用==,因为它的equal()方法已经重写为了==,如下:
public final boolean equals(Object other) {
return this==other;
}根据常量获取枚举值
//定义枚举类
public enum Color{
RED, WHITE
}
//获取枚举值
Color red = Color.valueOf("RED");
//获取所有枚举值
Color[] values = Color.values();
//获取枚举值的name
String name = Color.RED.name();
System.out.println(name);//输出:RED
//获取枚举值在类中出现的顺序
int ordinal = Color.WHITE.ordinal();
System.out.println(ordinal);//输出:1使用场景
1、定义常量
在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
2、switch判断
使用枚举,能让我们的代码可读性更强。
3、向枚举中添加新方法
如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。
4、覆盖枚举的方法
下面给出一个toString()方法覆盖的例子。
5、实现接口
所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举类不能再继承其他类。
6、使用接口的方式来组织枚举类
7、关于枚举集合的使用
java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的key是enum类型,而value则可以是任意类型。
参考
《Java编程思想》
Last updated