Java枚举类型的理解和学习

本文最后更新于2018年7月8日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!

=Start=

缘由:

不断补充学习Java基础知识。

正文:

参考解答:

枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。

一、在没有枚举类型时定义常量常见的方式

存在的问题:

  • 类型安全问题;
  • 程序可读问题;

二、有了枚举类型之后的定义方式

三、枚举的常见方法

  • values() : 返回enum实例的数组,而且该数组中的元素严格保持在enum中声明时的顺序。
  • name() : 返回实例名。
  • ordinal() : 返回实例声明时的次序,从0开始。
  • getDeclaringClass() : 返回实例所属的enum类型。
  • equals() : 判断是否为同一个对象。

四、一些示例代码

&

&

 

参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/4022.html

《Java枚举类型的理解和学习》上有1条评论

  1. 答应我,别再if/else走天下了可以吗
    https://mp.weixin.qq.com/s/ufRf8DQQRYQI0q2VxG3hQg

    这样当系统里有几十个角色时,那几十个 if/else嵌套可以说是非常酸爽了…… 这样一来非常不优雅,别人阅读起来很费劲;二来则是以后如果再复杂一点,或者想要再加条件的话不好扩展;而且代码一改,以前的老功能肯定还得重测,岂不疯了……

    所以,如果在不看下文的情况下,你一般会如何去对付这些令人头痛的if/else语句呢?

    当然有人会说用 switch/case来写是否会优雅一些呢?答案是:毛区别都没有!

    # 有枚举为啥不用
    # 有工厂模式为啥不用
    # 有策略模式为啥不用

    本文仅仅是抛砖引玉,使用了一个极其简单的示例来打了个样,然而其思想可以广泛地应用于实际复杂的业务和场景,思想真的很重要!写代码前还是得多思考一番,考虑是否有更具可扩展性的写法!

发表评论

电子邮件地址不会被公开。 必填项已用*标注