美文网首页
枚举和注解

枚举和注解

作者: 求闲居士 | 来源:发表于2016-10-10 16:35 被阅读238次
30,用enum代替int常量

枚举类型是指由一组固定的常量组成合法值的类型。

与int常量相比,枚举的优势是不言而喻的。

  • 枚举要易读的多,也更加安全,功能更强大。
  • 许多枚举都不需要显式的构造器或者成员,但许多其他枚举则收益于“每个常量与属性关联”以及“提供行为受这个属性影响的方法”。
  • 只有极少数枚举受益于将多中行为与单个方法关联。在这种相对少见的情况下,特定于常量的方法要优先于启用自有价值的枚举。
  • 如果多个枚举常量同时共享相同的行为,则考虑策略枚举。
31,用实例域代替序数

所有的枚举都有一个ordinal方法,它返回每个枚举常量在类型中的数字的位置。它是设计成用于像EnumSet和EnumMap这种基于枚举的通用数据结构的。

永远不要根据枚举的序列数导出与它有关的值,而是要把它保存在一个实例域中。

32,用EnumSet代替位域

这种表示法让你用OR位运算将几个常量合并到一个集合中,称作位域。

比如,某个方法通过参数获取类的一个常量。有些像从Map中通过key获取值。

java.util包提供了EnumSet类来有效地表示从单个枚举类型中提取多个值的多个集合。

33,用EnumMap代替序数索引

如果你所表示的这种关系是多维的,就使用EnumMap<..., EnumMap<...>>。应用程序在一般情况下都不使用Enum.ordinal,即使要用也很少,因此这是一种特使情况。

34,用接口模拟可伸缩的枚举

枚举类型可以通过给操作码类型和(属于接口的标准实现的)枚举定义接口,来实现任意接口。

例如,假设你想要定义一个上述操作类型的扩展,由求幂和求和操作组成。你所要做的就是编写一个枚举类型,让他实现接口。

35,注解优先于命令模式
36,坚持使用@Override注解

它表示注解的方法声明覆盖了超类型中的一个声明。

37,用标记接口定义类型

标记接口(marker interface)是没有保护方法声明的接口,而只指明(或者标明)一个类实现了具有某种属性的接口。例如Serializable接口

  • 如果想要定义一个任何新方法都不会与之关联的类型,标记接口就是最好的选择。
  • 如果想要标记程序元素而非类和接口,考虑到未来可能要标记添加更多信息,或者标记要适合于已经广泛使用了注释类型的框架,那么标记注解就是正确的选择。
  • 如果你发现自己再编写的是目标为ElementType.TYPE的标记注解类型,就要花点时间考虑清楚,它是否真的应该为注解类型,想想标记接口是否会更加合适呢。
  • 如果想要第一类型,一定要使用接口。

相关文章

  • 枚举和注解

    30,用enum代替int常量 枚举类型是指由一组固定的常量组成合法值的类型。 与int常量相比,枚举的优势是不言...

  • Effective Java 3rd-----Chapter 6

    Chapter 6 Enums and Annotations 枚举和注解 JAVA supports two s...

  • 实现validation注解进行校验枚举值

    背景: validation注解官方没有定义枚举类型的注解,于是这里自定义一个枚举类型注解,来实现对象的验证。 不...

  • 2020-01-31 关于枚举与数据字典

    说说什么时候使用了枚举:框架中,使用了枚举类的注解,即数据持久化时使用注解,当参数为枚举时,存入库的信息为枚举上注...

  • Java 枚举和注解总结

    Java 枚举和注解总结 枚举 没有枚举前我们基本上常量来定义值: 如果有了枚举后我们会怎样了? 代码是不是就清晰...

  • 枚举、注解

    枚举 类的对象只有有限个,确定的;当需要定义一组常量时,最好使用枚举类1.如何定义枚举类方式一:jdk5.0之前,...

  • 8.枚举和注解

    一、枚举 枚举的二种实现方式: 自定义类实现枚举 使用 enum 关键字实现枚举 自定义类实现枚举: 不需要提供s...

  • Android注解笔记

    注解(Annotation) 元注解 @Target 表明我们注解可以出现的地方。是一个ElementType枚举...

  • Android 修改字体工具类

    使用注解枚举和反射 其中,replaceSystemDefaultFont设置全局字体变化时,参数oldFontN...

  • Kotlin 高级编程语言特性代码实例

    定义接口 使用注解 实现接口 枚举类 enum class BizEnum 注解 annotation class...

网友评论

      本文标题:枚举和注解

      本文链接:https://www.haomeiwen.com/subject/alhvyttx.html