DrewJhung's Blog

enum另外一种用法

熟悉又陌生的enum

之前接触的枚举,都是列举自定义的有参或无参的枚举实例,其实这样就能满足大多数业务开发了, 我相信这也是Java developer最熟悉的enum用法。但是我今天介绍的是我第一次见到enum还可以这么用:在enum中定义一个抽象方法, 这样的话, 所有的枚举实例都需要实现这个抽象方法。

demo:

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
enum MethodEnum {
INIT{
void print(){
System.out.println("init");
}
},
PROCESS{
void print(){
System.out.println("processing");
}
},
STOP{
void print(){
System.out.println("stop");
}
};
abstract void print();
}
@Test public void enumMethodTest(){
MethodEnum x = MethodEnum.INIT;
x.print();
x = MethodEnum.PROCESS;
x.print();
x = MethodEnum.STOP;
x.print();
}

总结

多看框架源码多多少少还是有些小收获。