枚舉ENUM的tostring() valueof()和values()用法
阿新 • • 發佈:2018-07-17
tostring 遍歷 字面值 string類 red div for 字符串 變量
從jdk5出現了枚舉類後,定義一些字典值可以使用枚舉類型;
枚舉常用的方法是values():對枚舉中的常量值進行遍歷;
valueof(String name) :根據名稱獲取枚舉類中定義的常量值;要求字符串跟枚舉的常量名必須一致;
枚舉類中重寫了toString()方法,返回的是枚舉常量的名稱;
其實toString()和value是相反的一對操作。valueOf是通過名稱獲取枚舉常量對象。而toString()是通過枚舉常量獲取枚舉常量的名稱;
1 package enumTest; 2 3 /** 4 * author:THINK 5 * version: 2018/7/16.6 */ 7 public enum Color { 8 9 RED(0,"紅色"), 10 BLUE(1,"藍色"), 11 GREEN(2,"綠色"), 12 13 ; 14 15 // 可以看出這在枚舉類型裏定義變量和方法和在普通類裏面定義方法和變量沒有什麽區別。唯一要註意的只是變量和方法定義必須放在所有枚舉值定義的後面,否則編譯器會給出一個錯誤。 16 private int code; 17 private String desc; 18 19 Color(int code, String desc) { 20 this.code = code; 21 this.desc = desc; 22 } 23 24 /** 25 * 自己定義一個靜態方法,通過code返回枚舉常量對象 26 * @param code 27 * @return 28 */ 29 public static Color getValue(int code){ 30 31 for (Color color: values()) { 32 if(color.getCode() == code){ 33 returncolor; 34 } 35 } 36 return null; 37 38 } 39 40 41 public int getCode() { 42 return code; 43 } 44 45 public void setCode(int code) { 46 this.code = code; 47 } 48 49 public String getDesc() { 50 return desc; 51 } 52 53 public void setDesc(String desc) { 54 this.desc = desc; 55 } 56 }
測試類
1 package enumTest; 2 3 /** 4 * author:THINK 5 * version: 2018/7/16. 6 */ 7 public class EnumTest { 8 public static void main(String[] args){ 9 /** 10 * 測試枚舉的values() 11 * 12 */ 13 String s = Color.getValue(0).getDesc(); 14 System.out.println("獲取的值為:"+ s); 15 16 17 18 /** 19 * 測試枚舉的valueof,裏面的值可以是自己定義的枚舉常量的名稱 20 * 其中valueOf方法會把一個String類型的名稱轉變成枚舉項,也就是在枚舉項中查找字面值和該參數相等的枚舉項。 21 */ 22 23 Color color =Color.valueOf("GREEN"); 24 System.out.println(color.getDesc()); 25 26 /** 27 * 測試枚舉的toString()方法 28 */ 29 30 Color s2 = Color.getValue(0) ; 31 System.out.println("獲取的值為:"+ s2.toString()); 32 33 }
枚舉ENUM的tostring() valueof()和values()用法