本博客来自我的新书Java性能优化(暂定名),第5章的Java代码优化技巧节选2,也欢迎阅读我的新书 《Spring Boot 2 精髓 》
5.2 高速Map存取
使用EnumMap来存取Key是Enum的,会有较快的速度,如下是一个网关返回对象Result的的状态属性,是一个枚举类
public static enum Status {
SUCCESS(1,"成功"),FAIL(2,"处理失败"),DEGRADE(98,"成功降级"),UNKOWN(99,"未知异常");
private int code;
String msg;
Status(int code,String msg){
this.code = code;
this.msg = msg;
}
public int getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
考虑到定义微服务网关返回对象,应该尽量使用java自带类型,以避免各种序列化,反序列化问题,网关不返回此枚举值,而是返回msg字段,因此可以构造一个EnumMap,Key为Status枚举类型,Value为Status.msg 属性
Map enumMap =null;
private void initEnumMap(){
enumMap = new Enum