Enum枚举类分析和相关拓展
其实我认为使用枚举类就是对使用常量的扩充,例如类中使用类型,分类相同的类变量的时候,可以考虑使用枚举类来替换掉。
参考了网上的文章,大致有两个好处,第一是确定传入的参数类型。而不是形参是int类型,随便一个int类型就能够满足。第二是对比static静态变量更能够确定变量的意义。下面举一个例子来看。
Enum类实例
1 | /* 列举简单的行驶工具 */ |
和普通的类一样,同样也可以添加构造方法
1 | SPRING("春天"),SUMMER("夏天"),FALL("秋天"),WINTER("冬天"); |
也可以继承
1 | public enum SeasonEnum { |
以上是枚举类的基本使用。
EnumMap
和 EnumSet
public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V>
这是关于EnumMap的继承关系。
可以发现这是key为枚举类的一个Map。
1 | /* 简单创建,以后就可以实现枚举类的多种复用 */ |
EnumSet
相对于 EnumMap
等同于 hashSet
相对于 HashMap
的存在,很好理解。