📜  使用Java枚举(1)

📅  最后修改于: 2023-12-03 15:06:52.510000             🧑  作者: Mango

使用Java枚举

枚举是Java中一种特殊的数据类型,用于定义具有固定数量的常量集合。Java中的枚举是一种更安全、更易读、更易维护的方式来定义一组常量。在本文中,我们将深入探讨Java枚举的使用。

创建一个枚举类型

Java中的枚举是由枚举常数列表和可选的枚举变量组成的。下面是一个简单的Java枚举示例:

public enum Color {
   RED, GREEN, BLUE;
}

该示例定义了一个名为Color的枚举类型,并列出了三个枚举常数:RED、GREEN、BLUE。

此外,您还可以将变量和方法添加到枚举类型中。例如,以下示例定义了一个Day枚举,其中枚举常量具有名称和顺序,并且枚举类型包括一个toString()方法和一个getAbbreviation()方法:

public enum Day {
   SUNDAY("Sun"), MONDAY("Mon"), TUESDAY("Tue"), WEDNESDAY("Wed"),
   THURSDAY("Thu"), FRIDAY("Fri"), SATURDAY("Sat");

   private String abbreviation;

   private Day(String abbreviation) {
      this.abbreviation = abbreviation;
   }

   public String toString() {
      return super.toString().toLowerCase();
   }

   public String getAbbreviation() {
      return abbreviation;
   }
}
枚举常量的使用

一旦定义了枚举类型,就可以在Java程序中使用枚举常量。下面是一个示例Java程序,使用上面定义的Day枚举:

public static void main(String[] args) {
   Day today = Day.MONDAY;
   System.out.println("Today is " + today);
   System.out.println(today.getAbbreviation());
   System.out.println(Day.valueOf("TUESDAY"));
}

此示例将枚举常量“MONDAY”分配给变量“today”并输出结果。

枚举的高级用法

在Java 8之后,枚举类型得到了改进,添加了一些新的高级用法,例如枚举中的lambda表达式和方法引用。下面是一个示例,演示了如何使用枚举中的lambda表达式:

public enum MathOperation {
   ADD((a, b) -> a + b),
   SUBTRACT((a, b) -> a - b),
   MULTIPLY((a, b) -> a * b),
   DIVIDE((a, b) -> a / b);

   private final DoubleBinaryOperator operator;

   MathOperation(DoubleBinaryOperator operator) {
      this.operator = operator;
   }

   public double apply(double a, double b) {
      return operator.applyAsDouble(a, b);
   }
}

该示例定义了一个名为MathOperation的枚举类型,并为每个枚举常量添加了一个DoubleBinaryOperator类型的lambda表达式。

结论

如您所见,在Java中使用枚举可以使代码更好地组织和易于维护。使用枚举,您可以将一组常量分类到同一个枚举类型中,并在代码中使用这些枚举常量。此外,您还可以在枚举类型中添加方法和其他变量,使代码更加模块化。