在JDK1.5 之前,我们定义常量都是: public static fianl.... 。
现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
1、不用枚举
package First; public class Test { public static final int RED = 1; public static final int Green = 3; public static final int YELLOW = 2; public static void main(String[] args) { int value = Test.Green; System.out.println(value); } }
2、用枚举:改变上面
package First; public class LightTest { public enum Light{ RED(1),Green(3),YELLOW(2); private int nCode; /* * 1. private类型的构造函数 * 2. 给变量赋值 */ private Light(int nCode){ this.nCode = nCode; } /* * 获取各个变量的值 */ public int getValue(){ return nCode; } } public static void main(String[] args) { Light light = Light.Green; int value = light.getValue(); System.out.println(value); System.out.println("----------------"); //遍历 Light[] lights = Light.values(); for(Light a : lights){ System.out.println(a); System.out.println(a.nCode); } } }
3、用枚举:多个参数
package First; public class LightTest { public enum Light{ RED(1,"红"),Green(3,"绿"),YELLOW(2,"黄"); private int nCode; private String str; /* * 1. private类型的构造函数 * 2. 给变量赋值 */ private Light(int nCode, String str){ this.nCode = nCode; this.str = str; } /* * 获取各个变量的值 */ public int getValue(){ return nCode; } public String getStr(){ return str; } } public static void main(String[] args) { Light light = Light.Green; int value = light.getValue(); String str = light.getStr(); System.out.println(value); System.out.println(str); } }
根据code 获取value
public static String getValueByCode(int code) { for (SettleUserInfoEnum ele : values()) { if(ele.getCode() == code) { return ele.getValue(); } } return null; }