java中枚举的使用

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.作为常量使用