文章目录 枚举类的使用 如何定义枚举类 方式一:jdk5.0之前,自定义枚举类 方式二:jdk5.0,可以使用enum关键字定义枚举类 Enum类的主要方法 toString() values() valueOf...(String objName) 使用enum关键字定义的枚举类实现接口的 情况一:实现接口,在enum类中实现抽象方法 情况二:让枚举类的对象分别实现接口中的抽象方法 枚举类的使用 枚举类的理解:类的对象只有有限个...我们称此类为枚举类 当需要定义一组常量时,强烈建议使用枚举类 如果枚举类中只有一个对象,则可以作为单例模式的实现方式。...使用 enum 定义的枚举类默认继承了 java.lang.Enum类,因此不能再继承其他类 枚举类的构造器只能使用 private 权限修饰符 枚举类的所有实例必须在枚举类中显式列出(, 用于分隔...列出的实例系统会自动添加 public static final 修饰 必须在枚举类的第一行声明枚举类对象 enum Season1 implements Info{ //1.提供当前枚举类的对象
enum 枚举类可以实现一个或多个接口,使用enum定义的枚举类默认继承了java. lang.Enum类,而不是继承Object类,因此枚举类不能显式继承其他父类。...使用enum定义非抽象的枚举类时默认会使用final修饰,因此枚举类不能派生子类。...枚举类的构造方法只能使用private访问修饰符,如果省略,则默认使用private修饰;如果强制指定访问修饰符,则只能指定为private。...枚举类的所有实例必须在枚举类的类体第一行显式列出,否则该枚举类永远不能产生实例。列出的枚举实例默认使用public static final进行修饰。
Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等,订单的状态。...Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。 1.定义一个枚举类。...java.lang.Enum 类,并实现了 java.lang.Seriablizable 和 java.lang.Comparable 两个接口。...values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中: values() 返回枚举类中所有的值。...枚举既可以包含具体方法,也可以包含抽象方法。 如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它。 枚举类中的抽象方法实现,需要枚举类中的每个对象都对其进行实现。
一、 枚举类的说明 枚举类的理解:类的对象只有有限个,确定的。 当需要定义一组常量时,强烈建议使用枚举类 如果枚举类只一个对象,则可以作为单例模式的实现方式。...二、如何定义枚举类 ① 自定义枚举类 class Season{ // 1.声明Season对象的属性:private final修饰 private final String seasonName...// 使用enum关键枚举类 enum Season1{ // 1.提供当前枚举类的对象,多个对象之间用“,”隔开,末尾对象";"结束 SPRING("春天","春暖花开"),...,枚举类常用方法:(继承于 java.lang.Enum 类) value() 返回所有的枚举类对象的构成的数组 valueOf(String objName):返回枚举类中对象名是 objName 的对象...interface Info{ void show(); } // 使用enum关键字枚举类 enum Season2 implements Info{ //1.提供当前枚举类的对象,
而且 Java 要求必须先定义 enum 实例。 enum Color { //每个颜色都是枚举类的一个实例,并且构造方法要和枚举类的格式相符合。...那么像枚举也是在JDK1.5中才引入的,又是怎么实现的呢? Java在1.5中添加了java.lang.Enum抽象类,它是所有枚举类型基类。提供了一些基础属性和基础方法。....枚举类.Day$1); com.javase.枚举类.Day(java.lang.String, int, java.lang.String, com.javase.枚举类.Day$1); static...{}; } 可以看到,一个枚举在经过编译器编译过后,变成了一个抽象类,它继承了java.lang.Enum;而枚举中定义的枚举常量,变成了相应的public static final属性,而且其类型就抽象类的类型...总结 枚举本质上是通过普通的类来实现的,只是编译器为我们进行了处理。每个枚举类型都继承自java.lang.Enum,并自动添加了values和valueOf方法。
考虑用switch + 枚举的方式。...具体使用案例如下: package com.b2b.common.constant; import com.base.utils.base.StringUtils; /** * 系统类型枚举 *...return value; } public String getDesc() { return desc; } /** * 通过value取枚举...return enums.getDesc(); } } return ""; } } switch+枚举的使用案例...ErpResponse(); Map user= (Map) checkData.getData(); //获取user的系统类型
枚举类型的本质 尽管 enum 看起来像是一种新的数据类型,事实上,enum是一种受限制的类,并且具有自己的方法。...创建enum时,编译器会为你生成一个相关的类,这个类继承自 java.lang.Enum。...同样是实现上一节中的错误码枚举类,通过实现接口,可以约束它的方法。...因为 enum 实际上都继承自 java.lang.Enum 类,而 Java 不支持多重继承,所以enum不能再继承其他类,当然也不能继承另一个 enum。...可以将类型相近的枚举通过接口或类组织起来。
1、枚举是什么? Java中的枚举其实是一种语法糖,在 JDK 1.5之后出现,用来表示固定且有限个的对象。比如一个季节类有春、夏、秋、冬四个对象;一个星期有星期一到星期日七个对象。...这些明显都是固定的,且有限个。 2、枚举类和普通类的区别 ①、使用 enum 定义的枚举类默认继承 java.lang.Enum 类,即枚举类是不能再继承别的类了。...而普通类的一般父类默认是 Object ②、枚举类的构造器只能使用 private 定义,而普通类的还可以用 public 修饰 ③、枚举类的所有实例必须在枚举类中显示列出(,分隔 ;结尾)...,列出的实例系统会默认自动添加 public static final 修饰 ④、所有的枚举类都提供了一个 values() 方法,可以用来遍历枚举值 3、怎么用枚举? ...switch--case 的表达式(JDK 1.5以后) ②、如果枚举类的对象只有一个,那么可以作为单例模式的实现
JDK提供了Enum枚举类,让代码可读性更强,同时它也是类型安全的类,所有的枚举类都被final修饰,还可以很好地实现单例模式....枚举类基础用法 定义一个枚举类 Week package com.tea.modules.java8.enums; /** * com.tea.modules.java8.enums *...返回当前枚举在枚举类中的索引,从0开始 getDeclaringClass 返回枚举类的类型 Enum.valueOf() 返回与传入的名称相等的枚举,可能会抛出异常 switch配合枚举类编写状态机...{ /** * 打印枚举的名字 */ void printName(); } 枚举类实现接口 package com.tea.modules.java8.enums...,它提供了一种以集合的方式去操作枚举类的途径。
枚举 枚举对应英文(enumeration,简写enum)。 枚举是一组常量的集合。 可以这样理解:枚举是一种特殊的类,里面只包含一组有限的特定的对象。...枚举的两种实现方式 自定义类实现枚举 使用enum关键字实现枚举 自定义实现枚举 不需要提供setXxx方法,因为枚举对象值通常为制度。...} } enum实现接口 实现enum关键字后,就不能再继承其他类,因为enum会隐式继承Enum,而java是单继承机制。...,因为enum会隐式继承Enum,Java是单继承模式。...//但是enum实现的枚举,任然是一个类,所以可以实现接口。
); static {}; } 从反编译文件中可以得出以下结论: 定义的枚举值作为枚举类的属性,会被默认修饰为 public static final ,从修饰关键字,即可看出枚举值本质上是静态常量...3.枚举特性 枚举的特性,归结起来就是一句话: 除了不能继承,基本上可以将 enum 看做一个常规的类。...因为 enum 实际上都继承自 java.lang.Enum 类,而 Java 不支持多重继承,所以 enum 不能再继承其他类,当然也不能继承另一个 enum。但是枚举可以定义接口并实现。...Java 中提供了两个方便操作 enum 的工具类——EnumSet 和 EnumMap。...,大大加强了程序的可读性、易用性和可维护性,并且在此基础之上又进行了扩展,使之可以像类一样去使用,更是为Java对离散量的表示上升了一个台阶。
在项目中,一般推荐使用枚举来代替常量接口和常量类。但是,枚举类的用途不仅仅是定义常量,还有其它较多的方法,比如:实现接口、定义抽象方法、当作单例使用等。...本文是对Java枚举使用方法的一个整理,并给出示例。...枚举类在JDK 1.5引入的,枚举类在项目中已经不可或缺。...正是因为Java枚举类可以有自定义的方法,可以实现接口、定义抽象类等,更加的灵活,已经被广大开发人员推荐在项目中使用 -- 使用枚举类替换接口常量或者类常量等。...接下来,我们一起来看一些使用枚举的示例: 一、Java枚举类使用 声明枚举的语法如下: public/protected/private] enum Enum_name { ... ...} 1.1
枚举类的使用 枚举类的实现 JDK1.5之前需要自定义枚举类 JDK 1.5 新增的 enum 关键字用于定义枚举类 若枚举只有一个对象, 则可以作为一种单例模式的实现方式。...枚举类的属性 枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰 枚举类的使用 private final 修饰的属性应该在构造器中为其赋值 若枚举类显式的定义了带参数的构造器... 使用说明 使用 enum 定义的枚举类默认继承了 java.lang.Enum类,因此不能再继承其他类 枚举类的构造器只能使用 private 权限修饰符 枚举类的所有实例必须在枚举类中显式列出...而且 Java 要求必须先定义 enum 实例。 覆盖枚举的方法 如:toString()方法覆盖,因此拿到枚举对象,直接打印输入此对象的信息而不是一个地址。...,那么将会抛出异常No enum constant 实现接口的枚举类 和普通 Java 类一样,枚举类可以实现一个或多个接口 若每个枚举值在调用实现的接口方法呈现相同的行为方式,则只要统一实现该方法即可
Java枚举(enum)七种常见的用法汇总如下: JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。...用法一:常量 在JDK1.5 之前,我们定义常量都是:public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。...:实现接口 所有的枚举都继承自java.lang.Enum类。...由于Java 不支持多继承,所以枚举对象不能再继承其他类。...创建enum时,编译器会为你生成一个相关的类,这个类继承自 java.lang.Enum。
在日常写项目时,很多数据字典常量都需要定义和使用,同时在 Java 面试中,枚举也是一个绕不开的话题,这篇文章就来详细介绍一下枚举的定义以及使用。 01 【什么是枚举类?】...枚举类的定义就是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内,使用枚举可以很方便地定义数据常量、以及我们的使用。 02 【为什么需要枚举类?】...此外,还可以为不同的枚举变量调用不同的处理方法(这可以通过实现枚举类的抽象方法来实现)。...: valueOf():返回当前枚举类的name属性,如果没有,则throw new java.lang.IllegalArgumentException()。...具体可以查看java.lang.Enum源码。 values():返回包括所有枚举变量的数组。
大家好,又见面了,我是你们的朋友全栈君。...开发过程中为了代码的可阅读性和可维护性,很多类型字段往往会习惯使用枚举去定义,可是在一些判断里面想用switch去代替if else 就会出现以下问题 public enum SexType {...work; } public void setWork(String work) { this.work = work; } } 如果直接使用会因为case后跟的是常量表达式而导致报错...解决办法:知道枚举的值,可先获取枚举值对应的枚举,再使用switch 1、修改枚举类,新增一个静态方法,getByType() package com.jaryn.emun; public enum
用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。...,使用枚举,能让我们的代码可读性更强。...:实现接口 所有的枚举都继承自java.lang.Enum类。...由于Java 不支持多继承,所以枚举对象不能再继承其他类。...:关于枚举集合的使用 java.util.EnumSet和java.util.EnumMap是两个枚举集合。
作者:李小武 出处:http://suo.im/4n4inp DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。...用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。...:实现接口 所有的枚举都继承自java.lang.Enum类。...由于Java 不支持多继承,所以枚举对象不能再继承其他类。...:关于枚举集合的使用 java.util.EnumSet和java.util.EnumMap是两个枚举集合。
如何创建 首先,从名字就可以看出,枚举是一个类,那么我们就可以直接在创建时选择枚举就可以。 或者我们也可以在普通类前面加上enum关键词。...使用枚举 values() 返回枚举类中所有的值。 ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。 valueOf()方法返回指定字符串值的枚举常量。...该方法为静态方法,调用者为枚举类,不是枚举值; 该方法形参只要一个String类型的值即可,并且该String值为枚举值对应的名称,即toString()方法返回的值(比如枚举类为SPRING,对应的名称就是...name()方法与toString():几乎是等同的,都是输出变量的字符串形式。 getDeclaringClass(): 返回该枚举变量所在的枚举类。....Week中的值 System.out.println(Week.MON); //values()方法返回枚举类Week2.Week中指定索引的值 System.out.println
enum ImagesTypeEnum { JPG, JPEG, PNG, GIF; } getEnum(Class enumClass, String enumName) 通过类返回一个枚举...imagesTypeEnum = EnumUtils.getEnum(ImagesTypeEnum.class, "JPG"); getEnumList(Class enumClass) 通过类返回一个枚举集合...imagesTypeEnum1 = " + imagesTypeEnum1) ); // imagesTypeEnum1 = JPG getEnumMap(Class enumClass) 通过类返回一个枚举...@Profile注解的value必须是初始化的数组,不能使用Enmu赋值,也不能使用方法将枚举的value转成数组,包括扩静态方法,暂时没有更好的方法 package com.pactera.data.governance.enums...; import java.util.List; import java.util.stream.Collectors; import org.apache.commons.lang3.EnumUtils
领取专属 10元无门槛券
手把手带您无忧上云