首页
学习
活动
专区
工具
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()方法如果不在后面使用[索引下标

40430

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.4K74

java 枚举

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

1.1K30

Java 枚举

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

1.1K10

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

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

69310

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

Java枚举

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

1K10

Java枚举类型原理

static final实例,那么上面的代码就很让了费解了,为什么在枚举类型中可以有一个抽象方法,而每个枚举值可以对其重新实现?...那么,我们应该这么理解枚举类型原理,首先enum Color继承了java.lang.Enum这个抽象类,但enum Color还是一个抽象类,所以它可以有抽象方法和非抽象方法。...使用Java普通类模拟枚举 import java.util.HashMap;   import java.util.Map;   /**  * 模拟星期中表示天,每个星期天都表示一个对象... * 1、类中每一个枚举成员都是该类一个实例对象  * 2、构造函数私有化  * 3、提供操作枚举成员抽象方法和静态方法  */ public abstract class ...//使用普通JAVA类模拟枚举应用         WeekDate weekDate = WeekDate.MON;       //获得一个枚举对象 //调用枚举中提供方法

1.4K80

Java枚举Enum

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

1K20
领券