Java - 枚举 valueOf() 方法



描述

Java Enum valueOf() 方法返回指定enumtype 的具有指定名称的枚举常量。name 必须完全匹配在此类型中声明枚举常量的标识符。

声明

以下是java.lang.Enum.valueOf() 方法的声明

public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)

参数

  • enumType − 这是要从中返回常量的枚举类型的 Class 对象。

  • name − 这是要返回的常量的名称。

返回值

此方法返回指定枚举类型的具有指定名称的枚举常量。

异常

  • IllegalArgumentException − 如果指定的枚举类型没有具有指定名称的常量,或者指定的类对象不表示枚举类型。

  • NullPointerException − 如果 enumType 或 name 为 null。

获取枚举的底层值示例

以下示例演示了枚举中 valueOf() 方法的用法。

package com.tutorialspoint;

// enum showing Mobile prices
enum Mobile {
   Samsung(400), Nokia(250),Motorola(325);
  
   int price;
   Mobile(int p) {
      price = p;
   }
   int showPrice() {
      return price;
   } 
}
public class EnumDemo {   
   public static void main(String args[]) {
   
      System.out.println("CellPhone List:");
      for(Mobile m : Mobile.values()) { 
         System.out.println(m + " costs " + m.showPrice() + " dollars");
      }

      Mobile ret;
      ret = Mobile.valueOf("Samsung"); 
      System.out.println("Selected : " + ret);                              
   }
} 

输出

让我们编译并运行以上程序,这将产生以下结果:

CellPhone List:
Samsung costs 400 dollars
Nokia costs 250 dollars
Motorola costs 325 dollars
Selected : Samsung

获取枚举的底层值示例

以下示例演示了不同枚举中 valueOf() 方法的另一种用法。

package com.tutorialspoint;

// enum showing topics covered under Tutorials
enum Tutorials {  
   Java, HTML, Python; 
} 
 
public class EnumDemo { 

   public static void main(String args[]) {
 
      Tutorials t1, t2, t3; 
    
      t1 = Tutorials.Java; 
      t2 = Tutorials.HTML; 
      t3 = Tutorials.Python; 
    
      System.out.print("Programming in " + t1.toString());      
      System.out.println(", Value = " + Tutorials.valueOf("Java")); 
      System.out.print("Programming in " + t2.toString());  
      System.out.println(", Value = " + Tutorials.valueOf("HTML")); 
      System.out.print("Programming in " + t3.toString());  
      System.out.println(", Value = " + Tutorials.valueOf("Python")); 
   } 
} 

输出

让我们编译并运行以上程序,这将产生以下结果:

Programming in Java, Value = Java
Programming in HTML, Value = HTML
Programming in Python, Value = Python
java_lang_enum.htm
广告