枚举类的使用
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)
浙公网安备 33010602011771号