JDK1.5引入了新的类型——枚举。
创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式 Class Enum<E extends Enum>,而 E 表示枚举类型的名称。
package com.ttbank.flep.file.test; public enum ColorEnum { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); // 成员变量 private String name; private int index; // 构造方法 private ColorEnum(String name, int index) { this.name = name; this.index = index; } /** * 根据index获取属性name * 比如根据 3 得到 "白色" */ public static String getNameByIndex(int index) { for (ColorEnum c : ColorEnum.values()) { if (c.getIndex() == index) { return c.name; } } return null; } /** * 根据name获取属性index * 比如根据 白色 得到 3 */ public static Integer getIndexByName(String name) { //values()返回枚举类中所有的值 for (ColorEnum c : ColorEnum.values()) { String nameStr = c.getName(); if (nameStr.equals(name)) { return c.getIndex(); } } return null; } // get set 方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } }
测试代码:
package com.ttbank.flep.file.test; public class ColorTest { public static void main(String[] args) { Integer index = ColorEnum.getIndexByName("白色"); System.out.println(index); //直接初始化 ColorEnum colorEnum=ColorEnum.BLANK; //调用SeasonEnum枚举类的getChinese()方法获取SPRING的中文值 System.out.println(colorEnum.getName()); } }
效果图:
参考文献:https://blog.csdn.net/qq_27093465/article/details/52180865
https://blog.csdn.net/sihai12345/article/details/81070174(重点参考)