通用枚举类

简介: 本文介绍了Java中枚举类的两种常见用法。场景一展示了一个包含类型值的枚举`OperatorType`,通过构造函数设置类型并在`enumOf`方法中按值查找枚举常量。场景二的`EnableCheck`枚举使用`ordinal()`方法获取枚举常量的序号(默认从0开始),并转化为字符串返回,提供了`getValue()`方法以获取序号的字符串表示。

在项目中有时需要用到枚举类,下面就简单介绍下常用的几种写法

1、场景一

  • 调用:OperatorType.USER.getType()
public enum OperatorType {
   

    USER("1"),

    ROLE("2"),

    CUSTOMER("3");

    private final String type;

    OperatorType(String type) {
   
        this.type = type;
    }

    public String getType() {
   
        return type;
    }

    public static OperatorType enumOf(String type) {
   
        for (OperatorType operatorType : values()) {
   
            if (operatorType.getType().equals(type)) {
   
                return operatorType;
            }
        }
        return null;
    }
}

2、场景二

public enum EnableCheck {
   

    DISABLE,

    ENABLE;

    public String getValue() {
   
        return String.valueOf(this.ordinal());
    }
}
  • ordinal() 方法是Enum类中的一个方法,用于返回枚举常量的序数,即它在枚举声明中的位置索引。默认情况下,第一个枚举常量的序数为 0,第二个为 1。

  • this.ordinal() 返回当前枚举常量的序数,然后通过 String.valueOf() 方法将其转换为字符串。getValue() 方法返回的是当前枚举常量在声明中的位置索引的字符串表示。

目录
相关文章
|
8月前
|
C++
c++继承类型与多继承
c++继承类型与多继承
50 0
|
4月前
|
存储 编译器 开发者
通过 cdef 进行静态类型声明
通过 cdef 进行静态类型声明
44 0
|
7月前
|
设计模式 存储 Java
JavaSE——面向对象高级三(3/5)-枚举(认识枚举、拓展:抽象枚举、用枚举实现单例模式、枚举的应用场景)
JavaSE——面向对象高级三(3/5)-枚举(认识枚举、拓展:抽象枚举、用枚举实现单例模式、枚举的应用场景)
38 0
|
8月前
|
Go 索引
反射机制揭秘:轻松获取结构体成员类型
反射机制揭秘:轻松获取结构体成员类型
69 0
泛型-使用泛型结合工厂方法实现单例模式,以支持类型自定义
泛型-使用泛型结合工厂方法实现单例模式,以支持类型自定义
|
JavaScript
TypeScript 具有可选的静态类型和基于类的面向对象编程,具体应用案例解析
TypeScript 具有可选的静态类型和基于类的面向对象编程,具体应用案例解析
78 0
|
Java 编译器 C++
常量接口 vs 常量类 vs 枚举区别
把常量定义在接口里与类里都能通过编译,那2者到底有什么区别呢?
86 0
|
存储 JSON 缓存
看看人家在接口中使用枚举类型的方式,那叫一个优雅!上
看看人家在接口中使用枚举类型的方式,那叫一个优雅!上
看看人家在接口中使用枚举类型的方式,那叫一个优雅!上
|
JavaScript 前端开发
学习TypeScrip1(基础类型)
void 类型的用法,主要是用在我们不希望调用者关心函数返回值的情况下,比如通常的异步回调函数
97 0
学习TypeScrip1(基础类型)
|
存储 消息中间件 JavaScript
看看人家在接口中使用枚举类型的方式,那叫一个优雅!下
看看人家在接口中使用枚举类型的方式,那叫一个优雅!下