java enum學習和用法,代替靜態常量
阿新 • • 發佈:2019-02-07
java enum是jdk1.5新增,雖然enum是使用靜態常量來實現的,反編譯後可以看到,但是相比靜態常量,enum更安全,可以遍歷。有諸多好處。
下面是個例子:
public class TableDictionary { public static enum User { TABLE("user"), ID("id"), NAME("name"), AGE("age"), USER_ACCOUNT("user_account"); private String name; private User(String name) { this.name = name; } public String getValue() { return name; } public String getTableName() { return User.values()[0].getValue(); } } public static enum Tags{ TABLE("tags"), ID("id"), TAGS_NAME("tags_name"); private String name; private Tags(String name) { this.name = name; } public String getValue() { return name; } public String getTableName() { return Tags.values()[0].getValue(); } } }
下面是對User的遍歷:
public class TableDictTest { public static void main(String[] args) { for (User user : User.values()) { System.out.println(user); System.out.println(user.name()); System.out.println(user.getValue()); System.out.println(user.ordinal()); System.out.println(user.toString()); System.out.println(user.getTableName()); System.out.println(user.getDeclaringClass()); System.out.println(User.valueOf("ID")); } } }