简介

Enum,Java中的一种引用数据类型。

使用示例

  1. public enum AccountType {
  2. NO_PAY(0,"非付费"),
  3. NORMAL(1,"普通会员"),
  4. SENIOR(2,"高级会员"),
  5. CUSTOM_MADE(3,"精品定制会员"),
  6. BUSINESS(4,"运营版本会员");
  7. private int num;
  8. private String name;
  9. public int getNum() {
  10. return num;
  11. }
  12. public void setNum(int num) {
  13. this.num = num;
  14. }
  15. public String getName() {
  16. return name;
  17. }
  18. public void setName(String name) {
  19. this.name = name;
  20. }
  21. AccountType(int num, String name){
  22. this.num = num;
  23. this.name = name;
  24. }
  25. public static int getNumByName(String name) {
  26. for(AccountType accountType : AccountType.values()) {
  27. if(accountType.getName().equals(name)) {
  28. return accountType.getNum();
  29. }
  30. }
  31. return 0;
  32. }
  33. public static String getNameByNum(int num) {
  34. for(AccountType accountType : AccountType.values()) {
  35. if(accountType.getNum() == num)
  36. return accountType.getName();
  37. }
  38. return null;
  39. }
  40. }

特点

  1. 枚举类型是单例的。
  2. 所有枚举类型都继承了java.lang.Enum类,所以它不能在继承任何其它类,可以实现接口。
  3. 每个枚举类型都有一个静态的values()方法,它将返回一个包含全部枚举值的数组。
  4. 将所有枚举值列在开头,每个枚举值使用 , 隔开,所有枚举值列完之后使用 ; 结束。
  5. 枚举中的 ordinal() 用于获取枚举值在枚举中的顺序,以 0 开始。

使用场景

  1. 一个变量只能取某几个值,用户看的是文字,数据库存的数字。
  2. 用于switch中。使代码更加清晰。

官方API: https://docs.oracle.com/javase/8/docs/api/