Java Enum valueOf()方法与示例
枚举类valueOf()方法
valueOf()方法在java.lang包中可用。
valueOf()方法用于检索具有给定参数en_name(枚举名称)的给定参数en_ty(枚举类型)的枚举常量,我们需要记住一件事,该方法中指定的枚举名称必须与声明为相同此枚举类型的枚举常量。
valueOf()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
在检索枚举常量时,valueOf()方法可能会引发异常:
IllegalArgumentException:当给定的枚举类型不包含具有给定名称的枚举常量时。
NullPointerException:当给定的第一个参数表示null时。
语法:
public static T valueOf(Class<T> en_ty , String en_name);
参数:
Class<T>en_ty–表示枚举类型的Class对象,该对象返回一个常量。
字符串en_name–表示枚举常量的名称。
返回值:
此方法的返回类型为T,它返回枚举常量以及给定的枚举名称。
示例
//Java程序演示示例
// of T valueOf(Class<T> en_ty , String en_name)
//枚举方法
enum Month {
JAN,
FEB,
MAR,
APR,
MAY;
}
public class ValueOf {
public static void main(String args[]) {
Month m1 = Month.valueOf("JAN");
Month m2 = Month.valueOf("FEB");
Month m3 = Month.valueOf("MAR");
Month m4 = Month.valueOf("APR");
Month m5 = Month.valueOf("MAY");
System.out.println("Display value: ");
//通过使用valueOf()方法是返回值
//枚举常量
System.out.println("Month.valueOf(JAN) " + " " + m1.toString());
System.out.println("Month.valueOf(FEB) " + " " + m2.toString());
System.out.println("Month.valueOf(MAR)" + " " + m3.toString());
System.out.println("Month.valueOf(APR)" + " " + m4.toString());
System.out.println("Month.valueOf(MAY)" + " " + m5.toString());
}
}输出结果
Display value: Month.valueOf(JAN) JAN Month.valueOf(FEB) FEB Month.valueOf(MAR) MAR Month.valueOf(APR) APR Month.valueOf(MAY) MAY