Enum是Java中的一种数据类型,包括一组预先确定的常数。一周的天数、颜色是Enum的一些常见例子。与类相似,你可以使用Enum来指定你自己的数据类型。一个枚举可以在类的外部和内部陈述,但不能在方法中陈述。
在Java中,可以利用 "enum"关键字来定义一个Enum类型。一个枚举不能继承任何其他的类,因为它内部继承了Java枚举类;但是,它可以使用各种接口。
本文将解释Java中Enum类的valueOf()方法的使用。
如何使用Enum Java类的valueOf()方法?
Enum类的 "valueOf()"方法被用来获取一个指定枚举类型的常量及其名称。用来声明枚举常量的确切字符串被传递给valueOf()方法,该方法返回枚举常量。这是一个区分大小写的方法。如果你试图访问一个无效的字符串,这个方法也会抛出一个异常。
语法
以下是 "valueOf()"方法使用的语法。
enum.valueOf("constantValue")
这里,"enum"是声明的枚举名称,用于通过传递String作为 "常量值"来调用 "valueOf()"方法。
例1:访问一个枚举常量值
首先,我们将使用 "enum"关键字创建一个名为 "ProgrammingLanguages"的枚举,包含常量值。
enum ProgrammingLanguages{
C, Java, Python
}
在 "Example"类的main()方法中,我们将首先创建一个存储常量值的enum ProgrammingLanguages对象 "plang",然后通过传递字符串 "Java"来调用enum的 "valueOf()"方法,该字符串将用于从enum中获取常量。
ProgrammingLanguages plang = ProgrammingLanguages.valueOf("Java");
System.out.println("enum constant: " + plang);

输出显示了指定枚举常数的值。

让我们看看当我们调用枚举类型中不存在的元素时会发生什么。
例2:访问一个不存在的枚举常量值
在这个例子中,我们将考虑先前创建的枚举,并获得不在ProgrammingLanguages枚举中的常量 "C++"的值。
ProgrammingLanguages plang = ProgrammingLanguages.valueOf("C++");
System.out.println("enum constant: " + plang);

结果是,编译器会抛出一个异常。

让我们看看当我们调用枚举中的null时会发生什么。
例3:访问一个空的枚举常量值
我们将在 "valueOf()"方法中传递空字符串。它也会抛出一个异常,因为我们在创建的枚举中没有添加任何空常量。
ProgrammingLanguages plang = ProgrammingLanguages.valueOf(" ");
System.out.println("enum constant: " + plang);

输出

让我们看看如何打印枚举的所有常量。
例4:一次访问所有枚举常量值
在 "Example"类的main()方法中,我们将使用 "for"循环中的 "values()"方法打印枚举的所有常量值。为此,我们将使用 "ordinal()"方法来获取带有索引的枚举常量,就像数组索引一样。最后,valueOf()方法将通过使用 "System.out.println()"方法来打印枚举的所有常量。
System.out.println("The enum 'ProgrammingLanguages' contains: ");
for(ProgrammingLanguages pl : ProgrammingLanguages.values()) {
int i = pl.ordinal()+1;
System.out.println(i+" "+pl);
}

输出显示了名为ProgrammingLanguages的枚举的所有常数。

我们涵盖了使用Java枚举类valueOf()方法的所有基本指令。
总结
valueOf()方法被用来获取枚举的常量。它接受并返回在声明Enum常量时使用的同一个字符串。如果传递的字符串不是枚举的常量,它将抛出一个异常。另外,该方法是区分大小写的。在这篇文章中,我们用详细的例子解释了Enum类方法valueOf()的用法。