常见用法

常见用法

判断两个枚举值相等是用==还是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.EnumSetjava.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的key是enum类型,而value则可以是任意类型。

参考

Java 枚举7常见种用法

《Java编程思想》

Last updated