Think in Java总结 -- 19枚举类型

  • 19.1 enum特性
    enum实现Serializable接口,自动添加了equals和hashCode方法
方法名称含义
enums.values()返回类元素的数组
enum.ordinal()返回次序的int值
enum.getDeclaringClass()全类名
Enum.valueOf()根据名字返回实例
  • 19.1.1 支持静态导入
  • 19.2 enum类可以作为一个正常的类
  1. enum实例必须最先定义
  2. 构造函数默认是private,可以省略,不能为别的,只能内部调用
  • 19.2.1可以覆盖修改toString方法
  • 19.3switch中使用
  1. case中可以直接写元素,不用类名来引用
  2. 在Java7中添加了对String的支持,char是ascill码,String是hashCode加equals安全检查
  • 19.4 values()方法是由编译器插入到enum定义中的静态方法,Enum中没有,Class中有一个getEnumConstants()方法可以用来获取enum中的实例,和values()方法结果相同
  • 19.5 enum是继承至Enum中的,所以不能再继承
  • 19.6 enum与泛型结合使用,泛型库,随机选取
  • 19.7 枚举不能继承,但是可以同时继承一个接口,以达到泛型向上转型,统一类型
  • 19.8EnumSet抽象类
方法含义
EnumSet.noneOf(xxx.class)生成一个空的EnumSet< xxx >
EnumSet.of(xxx…)这些元素的集合
EnumSet.allOf(xxx.class)这个类所有实例的集合
EnumSet.range(a,b)从[a,b]元素的集合
EnumSet.complementOf(enumset<>)反转这个,有的变无,无中生有
  • 19.9EnumMap 键值必须来自一个enum,使用和一般Map相似
  • 19.10enum的元素可以实现本类中的抽象方法或者覆盖一般的方法
  • 19.10.1利用enum设计责任链模式,因为可以重载接口,所以用values方法获取所有实例,以此调用接口方法
  • 19.10.2//TODO
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值