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