首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java枚举类与常用方法

    使用枚举 values() 返回枚举类中所有的值。 ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。 valueOf()方法返回指定字符串值的枚举常量。...该方法为静态方法,调用者为枚举类,不是枚举值; 该方法形参只要一个String类型的值即可,并且该String值为枚举值对应的名称,即toString()方法返回的值(比如枚举类为SPRING,对应的名称就是..."SPRING"),所以肯定是需要双引号的; 扩展方法 compareTo(E o)方法:则是比较枚举的大小,注意其内部实现是根据每个枚举的ordinal值大小进行比较的。...name()方法与toString():几乎是等同的,都是输出变量的字符串形式。 getDeclaringClass(): 返回该枚举变量所在的枚举类。...//values()方法返回枚举类Week2.Week中指定索引的值 System.out.println(Week.values()[0]); 这个方法的话,values()方法如果不在后面使用[索引下标

    47530

    Java枚举

    枚举可以做什么 假设我们现在想表达星期,为了避免魔法值的出现,我们可能会写一个常量类: package com.tea.modules.java8.enums; /** * com.tea.modules.java8...使用抽象方法为每个枚举指定特定的行为 枚举不仅可以用来表示常量,有些时候,我们也可以将一些简单的计算逻辑写在枚举类中。...这个时候,可以使用抽象方法来定义每个枚举需要实现的行为. package com.tea.modules.java8.enums; import lombok.Getter; /** * com.tea.modules.java8...这个可以从反编译的文件中查看: 反编译 可以通过接口来让枚举实现一些通用的方法 定义一个接口,声明打印名字的能力 package com.tea.modules.java8.enums; /** *... * 不过,我们只能将 enum 的实例作为键来调用 put() 可方法,其他操作与使用一般的 Map 差不多。

    2.5K74

    java 枚举

    如何自定义枚举类 提供类的属性,声明为 private final 声明为 final 的属性,在构造器中初始化 通过公共方法(get)方法来调用属性 创建枚举类的对象:将类的对象声明 public static...values() 方法:返回所有值 valueOf() 方法:返回指定对象的值(要求传入的形参name是枚举类对象的名字) 否则,报 java.lang.IllegalArgumentException...:返回指定对象的值(要求传入的形参name是枚举类对象的名字) // 否则,报 java.lang.IllegalArgumentException 异常 String...枚举类实现接口 可以让不同的枚举类的对象调用被重写的抽象方法,执行的效果不同。...:返回指定对象的值(要求传入的形参name是枚举类对象的名字) // 否则,报 java.lang.IllegalArgumentException 异常 String

    1.2K30

    分享两个操作Java枚举的实用方法

    前言 Java枚举在开发中是非常实用的。今天再来分析几个小技巧并且回答一些同学的的疑问。首先要说明的是我的枚举建立在以下的范式之中: ? 枚举统一接口范式 2....如何把枚举值绑定的下拉列表 这种场景非常常见,如果你把状态、类别等属性封装成枚举的结构,就像下面一样,一个标识对应一个状态,这是典型的下拉列表结构。...这里我有两个办法,第一个你可以从JSON 类库 Jackson 优雅序列化 Java 枚举类一文获得解决方案;第二种更加简单一些,写一个工具类就可以了。...没有对应的枚举。...总结 今天分享了两个小工具类来操作枚举,不光运用了枚举的一些知识,同时也使用了Java 8的三个新特性:泛型附加约束、Optional和Stream API。

    73810

    Java 枚举

    Java 枚举 枚举 enum 什么是枚举类: Java 枚举是一个特殊的类,一般表示一组常量 比如: 一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等… 类似这种当一个变量有几种固定可能的取值时..., 可以将它定义为枚举类型 出现: Java1.5 之前是没有 枚举 和 注解 的....JDK 1.5 中可以在 switch 表达式中使用Enum定义的枚举类的对象 作为表达式 case 子句可以直接使用枚举值的名字(无需添加枚举类作为限定) SeasonTest2.Java ​ Season.Java...() 获取枚举成员的索引位置 enum 高级:implements实现类 enum 类继承了 java.lang.enum类 Java单根性所以不能在继承, 但Java 可以 多实现 eunm...在 Java 语言中和枚举类相关的,还有两个枚举集合类 java.util.EnumSet 和 java.util.EnumMap 使用 EnumSet 可以保证元素不重复,并且能获取指定范围内的元素

    9710

    Java 枚举

    ,和先前的多例设计code相比较,枚举可以完全简化的替代多例设计模式 枚举关键字 enum定义的枚举类实际上就是继承了 Enum 类的子类:   Enum是一个抽象类;Enum类中定义了两个方法:     ...values()方法,它将对象以对象数组的形式返回。...___________________________________________ 定义其他结构:   枚举之中定义的构造法方法,不可以使用public声明,必须构造私有化;   枚举对象必须放在首行...,其后才会定义属性、构造、方法; enum Color { RED("红色"),BLU("绿色"),GREEN("黄色"); //枚举对象定义在枚举类中的首行 private String...  枚举的使用根据个人是否习惯使用,不习惯使用的可以依旧使用多例设计模式

    1.2K10

    Java枚举类

    Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等,订单的状态。...enum 定义的枚举类默认继承了 java.lang.Enum 类,并实现了 java.lang.Seriablizable 和 java.lang.Comparable 两个接口。...values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中: values() 返回枚举类中所有的值。...ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。 valueOf()方法返回指定字符串值的枚举常量。...枚举既可以包含具体方法,也可以包含抽象方法。 如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它。 枚举类中的抽象方法实现,需要枚举类中的每个对象都对其进行实现。

    1.1K10

    Java:枚举类型

    Java:枚举类型----每博一文案师父说:人活一世,每个人都有他的特别,每个人都值得被温柔相待。...JDK 5.0 enum 定义枚举类在 Java 编程语言中,基于 JDK5.0 的前提下,您可以使用 enum 关键字定义枚举类型。...enum 类继承的不是 Object 类,而是 java.lang.Enum 类中的,所以 Season2.SPRING 枚举常量类中没有重写 toStirng()方法的前提下,调用的是 java.lang.Enum...这个方法和我们以前的方法是一样的。和普通 Java 类一样,枚举类可以实现一个或多个接口。若每个枚举值在调用实现的接口方法呈现相同的行为方式,则只要统一实现该方法即可。...JDK5.0 enum 定义的枚举类 的父类是  java.lang.Enum 抽象类,不是 Object 的类。

    1.3K00

    详解 Java 枚举

    前言 枚举(enum)是 Java 语言的关键字之一,和 class 关键字一样,我们可以通过 enum 来定义一个枚举类,并在这个枚举类里面创建相关的枚举常量。...这篇文章里我们来看一下枚举在 Java 字节码层面是怎么表示的。...枚举类 我们来深入看一下 Java 编译器是怎么处理枚举的:在控制台上键入 javap -c TestEnum.class(类路径需要换成你自己的编译得到的类路径),即反编译查看 TestEnum.class...那么为什么在上面的枚举类 TestEnum 的字节码中我们没有看到构造方法呢?**我们可以猜到这正是编译器为了顾及枚举的特性而将构造方法去除(或者说用别的方法代替)的体现。...至此我们可以得出结论了:对于枚举类来说,编译时编译器会将其构造方法去除,将其功能和参数都放在了 方法中,也就是说在枚举类的字节码中 方法充当了构造方法的作用。

    1.3K20
    领券