首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java中的枚举Enum

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

    1.6K20

    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;     /**      * 私有构造方法      */

    1.1K30

    Java enum的用法详解

    完整代码示例如下: package com.merryyou.enmu; import java.util.EnumMap; import java.util.EnumSet; /** * Created...(java是单继承,它已经继承了Enum),可以添加其他方法,覆盖它本身的方法 switch()参数可以使用enum了 values()方法是编译器插入到enum定义中的static方法,所以,当你将enum...enum中的元素,在一个接口的内部,创建实现该接口的枚举,以此将元素进行分组。...enum要求其成员都是唯一的,但是enum中不能删除添加元素。 EnumMap的key是enum,value是任何其他Object对象。 enum允许程序员为eunm实例编写方法。...所以可以为每个enum实例赋予各自不同的行为。 使用enum的职责链(Chain of Responsibility) .这个关系到设计模式的职责链模式。以多种不同的方法来解决一个问题。

    99650

    java枚举类型enum的使用

    最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?...Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型。...: package com.csdn.myEnum; import java.util.EnumMap; import java.util.EnumSet; public class LightTest...可以创建一个enum 类,把它看做一个普通的类。除了它不能继承其他类了。(java 是单继承,它已经继承了Enum), 可以添加其他方法,覆盖它本身的方法 3....enum 要求其成员都是唯一的,但是enum 中不能删除添加元素。 7. EnumMap 的key 是enum ,value 是任何其他Object 对象。 8.

    1.6K100

    JAVA枚举类型(Enum)的使用

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

    1.9K20

    Java 枚举类型 enum

    以下使用 JDK 版本为:1.8.0_121 枚举类型的引入 枚举类型是 Java 5 中增加的一个小特性,在此之前,实现枚举的方式为定义编译期常量形式。...枚举类型的使用 enum 关键字与常用的 class 关键字作用相似,用于完成对类结构的定义,所以 enum 可以作为一种特殊的类定义方式理解。...定义过程与 class 的定义类过程基本相同,同样提供有属性和方法的定义,不同之处在于 enum 定义的类默认继承了 Enum 类,因为 Java 不允许多继承,所以使用 enum 定义的类不能再继承其它类...valueOf 与 values 函数 从上图中的反编译内容可以发现两个额外的方法定义,其中 valueOf 函数在 Enum 源码中已有定义,但是比较 Enum 源码中的 valueOf 函数与此处反编译生成的...引用: Java Enums Tutorial A Guide to Java Enums

    1.5K32

    深入分析Java的enum

    创建的枚举类型默认是java.lang.enum(抽象类)的子类。 每个枚举项的类型都为public static final 。...因为Java的单继承机制,emum不能再用extends继承其他的类。 我们可以使用javap命令进行反编译验证。 ? 既然enum是一个类,那么它就可以像一般的类一样拥有自己的属性与方法。...但Java要求必须先定义enum实例。 否则会编译错误。...(java是单继承,它已经继承了Enum),可以添加其他方法,覆盖它本身的方法 switch()参数可以使用enum values()方法是编译器插入到enum定义中的static方法,所以,当你将enum...enum允许程序员为eunm实例编写方法。所以可以为每个enum实例赋予各自不同的行为。 【java.util.EnumSet和java.util.EnumMap】

    1.5K110

    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

    59200

    Java获取Enum所有值

    标题: Java获取Enum所有值 引言: 在Java中,枚举类型(Enum)是一种特殊的数据类型,用于定义一组常量。当我们需要获取一个Enum中所有的值时,有几种不同的方法可以实现。...本文将介绍使用Java代码高效地获取Enum所有值的方法,并提供相应的案例分析。...代码高性能: 在获取Enum所有值的过程中,我们可以使用Java内置的方法来实现。首先,我们需要使用Java的反射机制获取到Enum类型的所有常量。...通过这种方式,我们可以高效地获取到Enum中所有的值,并对它们进行进一步的处理。 结论: 在本文中,介绍了一种在Java中高效获取Enum所有值的方法。...希望本文能够帮助你更好地理解如何获取Java中Enum的所有值,并在实际开发中应用这种方法。对于更多关于Enum的用法和技巧,你可以进一步深入学习和探索。

    31110

    Java5 枚举(Enum)

    在Java中,被enum关键字修饰的类型就是枚举类型,此类继承了Enum类,形式如下: public enum ColorEnum { RED, // 代表ColoeEnum的一个对象...尽管 enum 看起来像是一种新的数据类型,事实上,enum是一种受限制的类,并且具有自己的方法。...枚举类 在某些情况下,一个类的对象是有限且固定的,如季节类,它只有春夏秋冬4个对象这种实例有限且固定的类,在 Java 中被称为枚举类; 在 Java中使用enum关键字来定义枚举类,其地位与 class...; 一个Java源文件中最多只能有一个public类型的枚举类,且该Java源文件的名字也必须和该枚举类的类名相同,这点和类是相同的; 使用 enum 定义的枚举类默认继承了 java.lang.Enum...类,并实现了 java.lang.Seriablizable 和 java.lang.Comparable 两个接口; 所有的枚举值都是 public static final 的,且非抽象的枚举类不能再派生子类

    1.4K31

    深入分析 Java 的枚举 enum

    当然上面的那个类是无法被编译的,因为 Java 编译器限制了我们显式的继承自 java.Lang.Enum 类, 报错 "The type Gender may not subclass Enum explicitly...", 虽然 java.Lang.Enum 声明的是 ?...这样看来枚举类其实用了多例模式,枚举类的实例是有范围限制的 它同样像我们的传统常量类,只是它的元素是有限的枚举类本身的实例 它继承自 java.lang.Enum, 所以可以直接调用 java.lang.Enum...(java是单继承,它已经继承了Enum),可以添加其他方法,覆盖它本身的方法 switch()参数可以使用enum values()方法是编译器插入到enum定义中的static方法,所以,当你将enum...enum允许程序员为eunm实例编写方法。所以可以为每个enum实例赋予各自不同的行为。 【java.util.EnumSet和java.util.EnumMap】

    2.3K30

    Java——枚举:优雅而干净的enum

    《Java编程思想》中有这么一句话:“有时恰恰因为它,你才能够‘优雅而干净’地解决问题”——这句话说的是谁呢?就是本篇的主角——枚举(Enum)——大家鼓掌了。...这段代码实际上调用了3次Enum(String name, int ordinal)(ordinal单词的意思为顺序),也就是: new Enum("WANGER", 0); new Enum...三、枚举实现单例 《Effective Java》一书中对使用枚举实现单例的方式推崇备至: 使用枚举实现单例的方法虽然还没有广泛采用,但是单元素的枚举类型已经成为实现Singleton的最佳方法。...因为Java虚拟机在加载枚举类的时候,会使用ClassLoader的loadClass方法,这个方法使用了同步代码块来保证线程安全。 避免反序列化破坏单例。因为枚举的反序列化并不通过反射实现。...读者福利: 分享免费学习资料 针对于Java程序员,我这边准备免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、MyBatis,Netty,Redis,Kafka,Mysql

    3.5K00
    领券