Java Enum类

枚举类型的超类

编译枚举类型时,编译器会创建一个类。枚举类型具有构造函数,字段和方法。 枚举类型仅在编译器生成的代码中实例化。

每个枚举类型都隐式地扩展java.lang.Enum类。 Enum类中定义的所有方法都可以与所有枚举类型一起使用。

Enum类

下表列出了在Enum类中定义的方法。

方法名称 方法描述
public final String name() 返回枚举常量的名称
public final int ordinal() 返回枚举常量的顺序值
public final boolean equals(Object other) 如果指定的对象等于枚举常量,则返回true。 否则,它返回false。当它们用于两个枚举常量,==运算符和equals()方法返回相同的结果。
public final int hashCode() 返回枚举常量的哈希码值。
public final int compareTo(E o) 将此枚举常量与指定的枚举常量进行比较。 它返回此枚举常量和指定枚举常量的序数值的差异。
public final Class getDeclaringClass() 返回声明枚举常量的类的对象。
public String toString() 默认情况下,它返回枚举常量的名称,与name()方法相同。
public static valueOf(Class enumType, String name) 返回指定的枚举类型和名称的枚举常量。

示例

Level  lowLevel = Enum.valueOf(Level.class, "LOW")

以下代码显示了如何比较两个枚举常量:

enum Level {
  LOW, MEDIUM, HIGH, URGENT;
}

public class Main {
  public static void main(String[] args) {
    Level s1 = Level.LOW;
    Level s2 = Level.HIGH;

    // s1.compareTo(s2) returns s1.ordinal() - s2.ordinal()
    int diff = s1.compareTo(s2);
    if (diff > 0) {
      System.out.println(s1 + "  occurs after  " + s2);
    } else {
      System.out.println(s1 + "  occurs before " + s2);
    }

  }
}

上面的代码生成以下结果。

LOW  occurs before HIGH

上一篇:Java枚举值

下一篇:Java枚举方法

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程