实现一个枚举:
public enum TestEnums {
test1("1", "2"),
test2("3", "4");
private String key;
private String val;
TestEnums(String key, String val) {
this.key = key;
this.val = val;
}
public String getKey() {
return key;
}
public String getVal() {
return val;
}
}
创建一个枚举的方式很奇怪,不是 class 也不是 interface,而是 enum,这究竟是个什么鬼东西。。。
看了下我自己编写的枚举类的继承关系,好家伙,原来也是继承自一个 Enum 抽象类。之所以那样创建,是为了方便吧。的确不用显式继承 Enum 了,而且枚举类内部的枚举写法也很简洁,就像 interface 不用显式的标注方法为 public abstract 一样,没有道理,就是规定~
那到底什么是枚举啊?
An enumeration is a complete, ordered listing of all the items in a collection.
一个集的枚举是列出某些有穷序列集的所有成员的程序。也就是在创建枚举类的时候就把所有的选项都列出来,使用的时候直接从里边取出即可。
以上面 TestEnums 为例,test1、test2 实际上就是 TestEnums 类型的对象,只不过简化了实例化过程和修饰符。枚举里的对象要和构造函数保持一致,如果是无参构造。构造方法是 private 隐式修饰的。
通过 TestEnums.test1.getKey() 的方式调用。