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"));
}
}
}