Java中枚举类enum的values()方法的详解

这篇具有很好参考价值的文章主要介绍了Java中枚举类enum的values()方法的详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java中枚举类enum的values()方法的详解

简介:

枚举中的一个特殊方法,values(), 在Enum 的 API 文档中也找不到这个方法,当点击values()时,也会跳到本类上。
此方法可以理解为:将枚举类转变为一个枚举类型的数组,因为枚举中没有下标,我们没有办法通过下标来快速找到需要的枚举类,这时候,转变为数组之后,我们就可以通过数组的下标,来找到我们需要的枚举类。接下来就展示代码了。

示例:

public enum EnumText {
    CODE_TYPE_ONE("春天",1),

    CODE_TYPE_TWO("夏天",2),

    ERROR("数据错误",-1)

    ;

    private String label;
    private Integer value;

    EnumText(String label, Integer value) {
        this.label = label;
        this.value = value;
    }

    public Integer getValue() {
        return value;
    }

    public String getLabel() {
        return label;
    }
}
测试案例:
public class Client {
    public static void main(String[] args) {
        for (EnumText e:EnumText.values()){
            System.out.println(e);
        }
        System.out.println("-------------------------------------");
        for (EnumText e:EnumText.values()){
            System.out.println(e.getLabel());
        }
        System.out.println("-------------------------------------");
        for (EnumText e:EnumText.values()){
            System.out.println(e.getValue());
        }
    }
}
测试结果:
CODE_TYPE_ONE
CODE_TYPE_TWO
ERROR
-------------------------------------
春天
夏天
数据错误
-------------------------------------
1
2
-1

能这样写的原因就是因为values可以将Enum转化为一个数组,然后进行遍历。

为什么有values()

  1. 打开控制台cmd,进入要编译的文件目录
  2. 将.java文件编译
  3. 将编译成功后的.class文件反编译
//将.java文件编译
javac EnumText.java

//将编译成功后的.class文件反编译
javap -c EnumText.class >e.txt

打开e.txt文件后可以看到

枚举.values,java,开发语言,jvm

编译器已经自动为我们插入了**values()**方法了

总结

1.如果使用了enum关键字来声明枚举类,则声明的枚举类默认继承了Enum类,并且底层默认是一个final类

2.编写自定义的enum时,其中是不含values()方法的,再编译java文件时,java编译器会自动帮助我们生成这个方法文章来源地址https://www.toymoban.com/news/detail-633730.html

到了这里,关于Java中枚举类enum的values()方法的详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言枚举类型enum(全面详细直观)

    维基百科的理解: 枚举类型用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。 定义:是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。 我的理解: 枚举类型就是将一些比较固定的值一一列举出来 ,比如一年有十二个

    2024年02月06日
    浏览(78)
  • C# 枚举使用整理_C# enum详解

    一、枚举的定义 枚举类型 是由基础 整型数值类型 的一组命名常量定义的 值类型 。 System.Enum 类型是所有枚举类型的抽象基类。 它提供多种方法来获取有关枚举类型及其值的信息。 有关更多信息和示例,请参阅 System.Enum API 参考页。 可在基类约束中使用 System.Enum(称为枚举

    2024年02月16日
    浏览(34)
  • Java 枚举类 详解

    1、枚举是什么? Java中的枚举其实是一种语法糖,在 JDK 1.5之后出现,用来表示固定且有限个的对象。比如一个季节类有春、夏、秋、冬四个对象;一个星期有星期一到星期日七个对象。这些明显都是固定的,且有限个。 2、枚举类和普通类的区别 ①、使用 enum 定义的枚举类

    2024年02月13日
    浏览(37)
  • java中枚举类型使用详解

    在Java中,枚举类型(Enumeration)是一种特殊的数据类型,它允许程序员定义一个有限的、可枚举的数据集。枚举类型的定义通常在类的内部,在类的外部使用。 以下是一些关于Java中枚举类型使用的详细说明: 定义枚举类型 要定义一个枚举类型,需要使用enum。以下是

    2024年02月12日
    浏览(43)
  • Java语言----反射、枚举以及lambda表达式

    目录 一.反射 1.1反射的基本情况 1.2反射中最重要的类 1.2.1 Class类 1.2.2Field类 1.2.3Constructor类 1.2.4Method类 1.3反射优缺点  二.枚举 2.1概念 2.2枚举(enum)类方法 2.3枚举的构造 三.Lambda表达式 3.1Lambda介绍 3.2 函数式接口 3.3使用lambda表达式 3.2.1不使用Lambda表达式调用 3.2.2使用Lambda表

    2024年02月08日
    浏览(49)
  • TypeScript【enum 枚举】

    导语 在 TypeScript 中,新增了很多具有特性的一些数据类型处理方法, enum 【枚举】 就是其中,很具有代表性的一种,所以本章节就来聊聊 在 TypeScript 中如何去运用 enum 【枚举】 。 枚举的 概念 : 枚举(Enum)类型 用于取值被限定在一定范围内的场景 ,比如一周只能有七天

    2024年02月14日
    浏览(39)
  • C++枚举解读(enum)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 对于开发C++来说,枚举是一个几乎必然用到的功能。当然今天要讲的枚举肯定不是平常漫不经心的使用,而是从里到外地深扒它,逐渐揭开它神秘地面纱,发现一些未曾注意到地东西。 枚举(enumeration)类

    2024年02月13日
    浏览(45)
  • enum枚举类型使用

    static Direction[] values():返回本类所有枚举常量; static Direction valueOf(String name):通过枚举常量的名字返回Direction常量,注意,这个方法与Enum类中的valueOf()方法的参数个数不同

    2024年02月13日
    浏览(42)
  • TS—枚举Enum用法

    枚举用于定义数据集合,使用枚举可以定义一些带名字的常量,有普通枚举、字符串枚举和常量枚举等类型。 普通枚举:初始值默认为 0,其余的属性按顺序依次递增。 也可手动设置初始值(其余的属性依旧按顺序递增): 字符串枚举: 常量枚举:使用 const 修饰的枚举

    2024年02月16日
    浏览(39)
  • ffmpeg enum AVChannel枚举解析

    AVChannel枚举是在2022-12-20的提交中添加的,对应的版本号是5.1. 这个提交的描述是\\\"avutil/channel_layout: add AVChannel enum and related functions\\\"。 AVChannel 是一个枚举类型,用于表示音频数据的各个声道。在音频数据中,一个“声道”是一个独立的音频信号,它可以被独立处理和播放。例如

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包