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

Java枚举Enum

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

1K20

javaenum 实现接口

javaenum 实现接口为什么会有这篇文章呢?日常生活遇到了一个问题。听我慢慢说来场景我在组件中封装了一个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

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

关于Java枚举Enum深入剖析

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

92330

关于Java枚举Enum深入剖析

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

69730

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

84530

Java--Enum思考

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

93940

Enum Parse

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

54410

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.1K100

JAVA枚举类型(Enum使用

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

1.1K20

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.2K32

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.2K91

深入分析Javaenum

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.2K110

pythonenum使用

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

65230
领券