java中的枚举是在java1.5加入的新功能。
枚举是一种特殊的类对象,定义{修饰符} enum 对象标识 [父接口] 枚举体;
1.特点:
- 1.枚举不可以定义为final或者是abstract类型,否则会出现编译错误;
- 2.枚举类型实现了Compareable和Serializable接口,可以进行比较和序列化操作。
- 3.枚举类型只能通过内部的枚举常量进行初始化;
- 4.枚举类型的clone()方法定义为final,不可以复制,否者会抛异常
- 5.枚举类型无法通过反射来进行赋值初始化;
- 6.枚举需要自己来定义序列化和反序列化,默认的序列化会抛出异常;
- 7.枚举类型的equal方法为final,不可以被自定义覆盖,同关联hashCode方法
- 8.枚举类型的finalize定义为fina,意味着枚举类型永远不会被
Gc回收。
2.枚举类型的初始化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| public enum EnvEnum{ PROD("project-prod","8080"), RELEASE("project-release","8081"), DEV("project-dev","8082"); private String appId; private String appPort; EnvEnum(String appId,String appPort){ this.appId = appId; this.appPort = appPort; } public String getAppId(){ return this.appId; } public void setAppId(String appId){ this.appId = appId; } public String getAppPort(){ return this.appPort; } public void setAppPort(String appPort){ this.appPort = appPort; } }
|
其主要的使用场景有如下7个方面:
1.作为常量使用