本文只是对Java中的枚举的简单使用
public class EnumModel { public enum Color { RED, GREEN, BLANK, YELLOW; } public enum Week{ MONDAY("星期一",1),TUESDAY("星期二",2),WDENESDAY("星期三",3),THURSDAY("星期四",4), FRIDAY("星期五",5),SATURDAY("星期六",6),SUNDAY("星期日",7); private String name; private int index; 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; } private Week(String name, int index) { this.name = name; this.index = index; } public static String getName(int index) { for (Week c : Week.values()) { if (index == c.getIndex()) { return c.name; } } return null; } } public static void main(String[] args) { System.out.println(EnumModel.Color.RED); System.out.println(EnumModel.Week.getName(1)); } }
枚举型可以直接与数据库打交道,我通常使用varchar类型存储,对应的是枚举的常量名。
常量类编译时,是直接把常量的值编译到类的二进制代码里,常量的值在升级中变化后,需要重新编译引用常量的类,因为里面存的是旧值。枚举类编译时,没有把常量值编译到代码里,即使常量的值发生变化,也不会影响引用常量的类。
枚举类编译后默认为final class,不允许继承可防止被子类修改。常量类可被继承修改、增加字段等,容易导致父类的不兼容。