枚举类的使用
1.枚举类的实现
public enum LoanInformationEntryEnum { /** * 待分配. */ WAIT_ASSESS("1", "待分配"), /** * 评估中. */ IN_ASSESS("2", "评估中"), 其余省掉
2.类的方法
(就是直接可以类名.方法名调用的)valueOf和values
valueOf方法根据字符串判断有没有对应的枚举实例(可以只有用的),没有抛出异常
try{ // 判断建值是否存在 LoanInformationEntryEnum.valueOf(entry.getKey()); } catch (IllegalArgumentException e) { Log.info("这个不是单选"); }
values方法取得所有枚举实列的数组,可以实现遍历
for(LoanInformationEntryEnum loanInformationEntryEnum:LoanInformationEntryEnum.values()){ }
3.对于枚举实例有4个方法
ordinal 返回values()的到的数组的下标
name 返回实例名字
toString 不重写与name方法相同,返回实例名字
compareTo values()的到的数组的下标相互比较大小,大返回1,小返回-1
public static void main(String[] args) { System.out.println(LoanInformationEntryEnum.loan_supplement_0002.ordinal()); System.out.println(LoanInformationEntryEnum.loan_supplement_0002.name()); System.out.println(LoanInformationEntryEnum.loan_supplement_0002.toString()); System.out.println(LoanInformationEntryEnum.loan_supplement_0004.compareTo(LoanInformationEntryEnum.loan_supplement_0002)); }
结果
0
loan_supplement_0002
loan_supplement_0002
1
4.注意枚举类不能被继承
枚举类使用enum定义后在编译后默认继承了java.lang.Enum类,而不是普通的继承Object类。enum声明类继承了Serializable和Comparable两个接口。且采用enum声明后,该类会被编译器加上"final"声明(同String)