首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java中的枚举Enum

在Java没有提供枚举的时候,比如我们要使用一个表示周几的枚举值怎么办? Java中是这样解决的:定义一个私有的构造函数,然后在类中new出对象来。...我们可以定义枚举中的成员函数。...中枚举的总结: 1.枚举也是一种特殊形式的Java类 2.枚举类中声明的每一个枚举值代表枚举类的一个实例对象 3.与Java中普通类一样,在声明枚举类时,也可以声明属性、方法构造函数,但枚举类的构造函数必须为私有的...4.枚举类也可以实现接口,或继承抽象类 5.若枚举只有一个枚举值,则可以当做单态设计模式使用 最后需要明确的是: Java中声明枚举类,均是java.lang.Enum类的子类,它继承了Enum...具体方法可以参考Java API文档,里面提供了一些有用的方法。

1.1K20

java中enum 实现接口

java中enum 实现接口为什么会有这篇文章呢?日常生活中遇到了一个问题。听我慢慢说来场景我在组件中封装了一个BaseResultEnum;用来定义返回的错误码和错误信息。...但是再返回的时候,必须xxxResultEnum.code,xxxResultEnum.msg 2个参数进行传递进来。因为枚举不能继承。实现有一天忽然发现可以枚举可以实现接口。...上层定义一个统一的接口不就好了public interface IResultCode {/** * 返回码 * * @return Integer */Integer getCode();/** *...返回消息 * * @return String */String getMsg();}枚举类@Getter@AllArgsConstructorpublic enum BaseResultEnum implements...业务内就自己定义自己项目内的错误信息就可以@Getter@AllArgsConstructorpublic enum LearningResultEnum implements IResultCode

33600
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于Java中枚举Enum的深入剖析

    在编程语言中我们,都会接触到枚举类型,通常我们进行有穷的列举来实现一些限定。Java也不例外。Java中的枚举类型为Enum,本文将对枚举进行一些比较深入的剖析。...枚举原理是什么 Java中Enum的本质其实是在编译时期转换成对应的类的形式。...转换成了继承自的java.lang.enum的类 既然隐式继承自java.lang.enum,也就意味java代码中,Season不能再继承其他的类 Season被标记成了final,意味着它不能被继承...,并将上面的四个对象放入数组的操作. values方法 values方法的的返回值实际上就是上面$VALUES数组对象 swtich中的枚举 在Java中,switch-case是我们经常使用的流程控制语句...Java中enum的一些深入的剖析,欢迎大家不吝赐教。

    71230

    关于Java中枚举Enum的深入剖析

    在编程语言中我们,都会接触到枚举类型,通常我们进行有穷的列举来实现一些限定。Java也不例外。Java中的枚举类型为Enum,本文将对枚举进行一些比较深入的剖析。...枚举原理是什么 Java中Enum的本质其实是在编译时期转换成对应的类的形式。...转换成了继承自的java.lang.enum的类 既然隐式继承自java.lang.enum,也就意味java代码中,Season不能再继承其他的类 Season被标记成了final,意味着它不能被继承...,并将上面的四个对象放入数组的操作. values方法 values方法的的返回值实际上就是上面$VALUES数组对象 swtich中的枚举 在Java中,switch-case是我们经常使用的流程控制语句...Java中enum的一些深入的剖析,欢迎大家不吝赐教。

    95730

    Java--Enum的思考

    ---- 枚举类是Java5引进的特性,其目的是替换int枚举模式或者String枚举模式,使得语义更加清晰,另外也解决了行为和枚举绑定的问题. int枚举模式 在枚举类之前该模式被广泛使用,如果是int...Java作为强类型语言,该模式让其失去了强类型优势....构造函数前两个默认为枚举字段名称,以及所处的顺序.也就是Enum中的name与ordinal....如何与行为绑定 从反编译的代码来看枚举类是可以实现接口的,那么就可以利用接口定义行为,然后枚举类中覆盖行为.同样假设每一个枚举字段所对应的行为不同,那么直接内部覆盖掉也是很好的策略,这种情况下也叫策略枚举模式...使用建议 关于使用建议,参考阿里巴巴Java开发手册中的三条建议,以及笔者的一条建议 所有的枚举类型字段必须要有注释,说明每个数据项的用途。

    97640

    Java Enum Singleton

    参考链接: Java Singleton 今天回头看了单例模式,以前从没用过枚举单例,学习了一下,Enum Singleton 是目前最优的单例模式,好处有三:  1....默认枚举实例的创建是线程安全的,但是在枚举中的其他任何方法由程序员自己负责。   .../** * Singleton pattern example using Java Enumj */ public enum EasySingleton{     INSTANCE; }  你可以通过...枚举自己处理序列化   传统单例存在的另外一个问题是一旦你实现了序列化接口,那么它们不再保持单例了,因为readObject()方法一直返回一个新的对象就像java的构造方法一样,你可以通过使用readResolve...Administrator  *  */ public enum EnumSingleton {     INSTANCE;     /**      * 私有构造方法      */

    88830

    Enum Parse 中的坑

    首先我们来看一个简单的示例: public enum City: byte { BeiJing= 0, ShangHai = 1, ShenZhen= 2, WuHan=...解决问题 Enum中的Parse方法除了支持从Name字符串转换为枚举值外,还支持从数字字符串转换为枚举值,例子如下: //从数字字符串转换为枚举值 if (Enum.TryParse("100", out...{ Console.WriteLine("不是枚举对应的数值"); } //Name字符串转换为枚举值 if (Enum.TryParse("HongKong", out City city2...我们在Name字符串转换为枚举值时按照以往的方式来编写代码,但是在从数字字符串转换为枚举值时,我们使用了Enum.IsDefined方法来确定city1是否是枚举City实际定义的内容。...因此当我们从数值字符串转换成枚举的时候需要注意,即使数值在枚举中未定义它也会转换成功,这时就应该使用IsDefined方法来确保枚举定义了对应的值。

    60110

    java枚举类型enum的使用

    最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?...Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型。...首先给Light 枚举类型增加构造方法,然后每个枚举类型的值通过构造函数传入对应的参数,同时覆写toString 方法,在该方法中返回从构造函数中传入的参数,改造后的代码如下: public enum...可以创建一个enum 类,把它看做一个普通的类。除了它不能继承其他类了。(java 是单继承,它已经继承了Enum), 可以添加其他方法,覆盖它本身的方法 3....values() 方法是编译器插入到enum定义中的static 方法,所以,当你将enum 实例向上转型为父类Enum是,values()就不可访问了。

    1.2K100

    JAVA枚举类型(Enum)的使用

    这个时候就体现出枚举类的作用了,java中枚举类型就是针对这样的场景需求所设计的。.../** * 枚举类的后缀建议为Enum,枚举类型的实例对象建议全大写(这样做符合JAVA的规范) */ public enum SeasonEnum{ SPRING,SUMMER,AUTUMN...我们这样设想一下,当我们创建SeasonEnum这个枚举类时,可不可以让SeasonEnum中的每一个实例对象都有一个getChinese()方法呢。答案是肯定的,而且这种做法在企业开发中很常见。...其实枚举类型可以看做我们平时新建.java差不多,只是枚举类限制了此类的实例对象。当然,枚举类可以有自己的成员变量和方法。...如果想看它更多用法请参考下面的链接 更多用法请参考这篇Java 枚举(enum) 详解7种常见的用法_请叫我大师兄_的博客-CSDN博客_java 枚举的定义与用法 版权声明:本文内容由互联网用户自发贡献

    1.3K20

    Java 枚举类型enum 的使用

    Java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?...Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型。...首先给Light 枚举类型增加构造方法,然后每个枚举类型的值通过构造函数传入对应的参数,同时覆写toString 方法,在该方法中返回从构造函数中传入的参数,改造后的代码如下: public enum...可以创建一个enum 类,把它看做一个普通的类。除了它不能继承其他类了。(java 是单继承,它已经继承了Enum), 可以添加其他方法,覆盖它本身的方法 3.    ...values() 方法是编译器插入到enum 定义中的static 方法,所以,当你将enum 实例向上转型为父类Enum是,values() 就不可访问了。

    1.3K91

    Java 枚举类型 enum

    以下使用 JDK 版本为:1.8.0_121 枚举类型的引入 枚举类型是 Java 5 中增加的一个小特性,在此之前,实现枚举的方式为定义编译期常量形式。...定义过程与 class 的定义类过程基本相同,同样提供有属性和方法的定义,不同之处在于 enum 定义的类默认继承了 Enum 类,因为 Java 不允许多继承,所以使用 enum 定义的类不能再继承其它类...Enum 的构造函数为 protected 级别,观察示例中 Season 枚举类内部声明的四个实例,发现并未显式调用基类的构造函数,甚至连自身的构造函数也没有显式调用。...valueOf 与 values 函数 从上图中的反编译内容可以发现两个额外的方法定义,其中 valueOf 函数在 Enum 源码中已有定义,但是比较 Enum 源码中的 valueOf 函数与此处反编译生成的...valueOf 函数实现,可以发现,编译器生成的 valueOf 函数内部调用的其实就是 Enum 类中定义的 valueOf 函数。

    1.3K32

    深入分析Java的enum

    EnumSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型。...而且,你看到了熟悉的values()方法和valueOf()方法。 仔细看,这个类继承了java.lang.Enum类!所以说,枚举类不能再继承其他类了,因为默认已经继承了Enum类。...而在枚举类中,我们只需要像上面那样写【RED(30){}】就可以了,因为java会自动的去帮我们完成这一系列操作 枚举类的其他用法 ?...(java是单继承,它已经继承了Enum),可以添加其他方法,覆盖它本身的方法 switch()参数可以使用enum values()方法是编译器插入到enum定义中的static方法,所以,当你将enum...enum允许程序员为eunm实例编写方法。所以可以为每个enum实例赋予各自不同的行为。 【java.util.EnumSet和java.util.EnumMap】

    1.3K110

    python中enum使用

    参考链接: Python枚举模块enum python中枚举类型个性化用法  摘要:枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期、月份、状态等。...本文采用继承自enum模块的Enum类, 实现了一些个性化的设置, 如枚举类型的初始化。   ...笔者进行了__init__()方法重写,但是一直报错,于是去看了 enum.py的源码, 发现 Enum中只有 构造方法__new__()但并未找到其初始化方法__init__(),源码也比较复杂,因能力有限看了半天也未想出通过...百思不得其解之后,笔者另辟蹊径,想到通过类中的静态方法来实现这一功能, 代码如下:   class Week(enum.Enum):     Mon = 0     Tue = 1     Wed =...最后,版权声明: 本blog是笔者根据在网络上看到的某企业面试题为背景编写的代码, 谨用于关于python中enum类的学习经验交流,无作他用。

    69530
    领券