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