Java之Enum枚举类实践
概述
项目中涉及到很多不变的业务变量,因此我们采用了Enum类来定义相关变量,采用Enum的原因
- 性能高,常量值的地址唯一,可以直接使用 == 来判断
- 完全单例,线程安全
项目实践
package com.bierce;/*** 审核流传状态枚举类*/
public enum FlowTypeEnum {START("开始"),AUTORECORD("自动记录"),AUTOHANDLE("自动处理"),SUBMIT("提交"),AGREE("同意"),REFUSE("拒绝"),QUESTIONING("提问"),RETURN("退回"), FINISH("完成");//......private String name;public static String getEnumMsgByType(String type) {for (FlowTypeEnum e : FlowTypeEnum.values()) {System.out.println("e: " + e);if (e.toString() == type ) { //enum的变量地址唯一,可直接使用 == 比较return e.name;}}return "";}private FlowTypeEnum(String name) {this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}public static void main(String[] args) {System.out.println("---default tostring---" + FlowTypeEnum.START);System.out.println("---getEnumMsgByType---" + FlowTypeEnum.getEnumMsgByType("FINISH"));}
}// 执行结果
---default tostring---START
e: START
e: AUTORECORD
e: AUTOHANDLE
e: SUBMIT
e: AGREE
e: REFUSE
e: QUESTIONING
e: RETURN
e: FINISH
---getEnumMsgByType---完成