Java常用类:Enum类

java enum枚举详解 说法是否正确enum底层基于✅完全正确所有枚举都隐式继承Enum<E>✅ 是name和ordinal来自Enum类✅ 是开发者不能手动继承Enum✅ 是(语言禁止)枚举仍是“类”,只是特殊语法✅ 是enum关键字的本质,就是 Java 提供的一种“安全、简洁、功能完整”的方式,来创建继承自的常量类。这就是 Java 枚举既简单又强大的秘密 🌟这是一个非常深刻的问题!你已经触及了 Java 语言设计的核心安全机制。问题答案能否手动?❌不能,编译器禁止为什么禁止? 阅读详情

作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)

Enum类

为什么要使用Enum呢?首先来看一段代码

//判断用户的身份,根据不同的身份调用不同的方法
public void judgeUserIdentity(int i){
        switch (i){
            case 0:
                doSomething0();break;
            case 1:
                doSomething1();break;
            case 2:
                doSomething2();break;
            case 3:
                doSomething3();break;
            case 4:
                doSomething4();break;
        }
    }

类似这种代码,我在实际工作中也遇到过,可能只有写这段代码的人知道0,1,2,3,4代表什么,其他人拿到就一脸懵逼。所以这种情况下就需要用到枚举,让别人一眼就知道这些魔法值到底是什么含义。

创建枚举类

public enum EnumDemo {
    //定义符合语义的枚举类型
    COPPER("COPPER","铜卡"),
    SILVER("SILVER","银卡"),
    GOLD("GOLD","金卡"),
    PLATINUM("PLATINUM","铂金卡"),
    DIAMOND("DIAMOND","钻石卡");
    //根据需要定义成员变量
    private String type;
    private String msg;
    //构造方法初始化属性的值
    EnumDemo(String type,String msg){
        this.type = type;
        this.msg = msg;
    }
    //getter获取属性值
    public String getType() {
        return type;
    }
    public String getMsg() {
        return msg;
    }
    //该方法主要是为了在switch中使用枚举
    public static EnumDemo getValue(String type){
        if(type == null){
            return null;
        }
        for(EnumDemo item:EnumDemo.values()){
            if(type.equals(item.getType())){
                return item;
            }
        }
        return null;
    }
}

创建好后,重构刚才的代码:

 public void judgeUserIdentity(String type){
        switch (EnumDemo.getValue(type)){
            case COPPER:
                doSomething0();break;
            case SILVER:
                doSomething1();break;
            case GOLD:
                doSomething2();break;
            case PLATINUM:
                doSomething3();break;
            case DIAMOND:
                doSomething4();break;
        }
    }

这样重构以后使得代码的可读性增强,便于维护。

UE4载具性能调优指南:从参数设置到实战优化 本文详细解析了UE4载具性能调优的关键技巧,从WheeledVehicle类构建到轮子参数、传动系统设置,再到物理属性与操控调校。通过实战案例分享,帮助开发者优化载具的速度、加速度等核心性能,提升游戏体验。特别适合需要精细调校载具物理特性的开发者参考。 阅读详情

相关推荐

基于Python的微信聊天记录分析——数据获取

本篇为“基于Python的微信聊天记录分析”第一篇,主要涉及数据获取,包括Python环境配置、WeChatMsg项目配置和运行、获取聊天记录等内容,流程简单、比较基础,后续这个系列会涉及基于Python的数据处理、统计分析、NLP技术等内容。希望和大家多多交流,共同进步!

Henryli1202的博客 1万+

Java 枚举(enum) 的常见用法和开发规范

JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static final.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 publicenumColor{ RED,GREEN...

dichengyan0013的博客 3949

懒人精灵手游内存技术分析

教学声明:全套教程教学用到的游戏采用手游私服网游进行测试,不针对任何游戏。教学只做计算机技术研究,不做其他用途。

yizhihaoren123的博客 1655

Java 枚举(enum) 六种常用的方法详解

JDK1.5引入了新的类型--枚举,在java中虽然枚举只是一个很小的功能,却给我们带来了很大的方便。 首先我们要了解几个概念,enum是没有构造函数的,准确的来说是没有public类型的构造函数, 它的构造函数只能是private类型的;enum是单例模式;enum中有一个values方法来获取枚举实例对象数组; 说明: MSG_TYPE_SYSTEM是枚举常量,MsgTypeEnum是枚举...

OceanSky的专栏 6万+

Fiddler Everywhere保姆级教程:10分钟搞定手机HTTPS抓包(附证书配置避坑指南)

本文提供Fiddler Everywhere移动端HTTPS抓包的保姆级教程,涵盖环境配置、代理设置、证书安装及常见问题排查。重点解析如何正确安装并信任Fiddler根证书以解密HTTPS流量,帮助开发者快速搭建抓包环境,高效分析应用网络行为,提升调试效率。

git9versioner的博客 703

MobaXterm详细使用教程

当然MobaXterm的功能远不止这些,但这些是最基本,最常用的,因此先拿出来讲。点击确定后,输入密码(输入密码时并不会显示,只管输入后按确定即可,第一次登陆成功后会提示保存密码,一般选择同意),就可以连接上虚拟机了。(2) 我们可以直接apt-get安装vim等常用功能(或者官网下载插件),实现在windows下模拟linux环境,这样就可以使用vi命令准备INCAR文件,也可以使用Gnuplot进行绘图。支持 Unix 命令(bash,ls,cat,sed,grep,awk,rsync,…

博客 4万+

Enum 枚举类的写法

先定义一个枚举类(EnumDemo) public enum EnumDemo { /** * @Description 枚举状态码 * @Date 15:16 2020/7/16 **/ firstError("200","状态正常"), secondError("404","访问路径不正确"), thirdError("500","资源不存在"); private String key; private String value; EnumDemo(String k.

寒夜二十五 2080

用MATLAB从零实现六足机器人步态仿真:交替三角与波动步态保姆级教程

本文详细介绍了如何使用MATLAB从零实现六足机器人的两种经典步态仿真:交替三角支撑步态和波动步态。通过参数定义、相位设置、运动轨迹生成和三维可视化等步骤,帮助读者掌握六足机器人步态规划的核心技术。教程包含完整代码和详细解析,适合机器人爱好者和相关专业学生学习实践。

weixin_26765363的博客 226

Java 枚举(enum) 详解7种常见的用法

JDK1.5引入了新的类型——枚举。在Java中它虽然算个“小”功能,却给我的开发带来了“大”方便。 大师兄我【大师兄】又加上自己的理解,来帮助各位理解一下。 用法一:常量 在JDK1.5之前,我们定义常量都是:public static final....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 publ...

请叫我大师兄 88万+

【Claude Code】Not logged in 未登录错误解决方案 + /login 认证路径

Claude Code 启动时提示 Not logged in 表示当前会话缺少有效凭证。本文从环境变量、API Key 配置、CI 自动化凭证脚本和系统时钟四个维度,提供完整的认证排查流程与修复方案。

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 891

hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案

hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案。

1291

JAVA基础:常用类(Enum类)

import java.lang.management.MonitorInfo; /* * 18/11/22 * 枚举类 * 1.创建一个enum时,由编译器生成一个相关的类默认继承java.lang.Enum而不是继承Object. * 2.枚举类的构造函数只能使用private修饰(如果忽略了修饰符,默认为private). * 3.枚举类的所有实例必须在枚举类中显示列出(系统默...

大学生小汪的成长博客 225

【软考高级架构】案例题考前突击6——大数据架构

前一类的数据主要由流量方以接口的方式提供(比如对接的腾讯广点通平台),后一类则是某网特有的数据,通过买家的浏览、下单、付款日志算出来。1. 在数据层面只维护一张包含所有指标的MySQL表,表中的stday字段作为索引,stday=当天的保存实时数据,stday<当天的保存离线数据。典型的大数据架构,除了Lambda架构之外,还有kappa架构,这两个架构的区别如下标所示,请补充表中空(1)-(4)第二,实时数据只对接了内部的kafka消息,没有实时的获取第三方的曝光、点击、浏览数据。

qq837993702的博客 66

Java 常用类:Objects、包装类、String类、Date、DateFormat、Calendar类、Math类、File类、Enum类、System类

文章目录常用类1、Object类与Objects类Object类Objects类2、基本数据类型 包装类1)自动装箱、自动拆箱2)缓存源码分析3、String类 == 与 equals1)StringBuilder类与StringBuffer类StringBuilder类常用方法4、Date、DateFormat、SimpleDateFormat、Calendar、GregorianCalendar类1)Date类2)DateFormat抽象类、SimpleDateFormat类3)Calendar抽象类、

阿星小天地 260

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java常用类和方法:Scannner、Date、Radom、Math、Enum、System、基本类型包装类

一、Scannner 1、用户输入为int类型 Scanner s=new Scanner(System.in); int i= s.nextInt(); String str= s.net(); 2、用户输入为String类型 Scanner s=new Scanner(System.in); String str=scanner.nextLine();//按行接收 String[] strArr=str.split(" ");//以空格划分元素 3、将接收的String类型数字

qq_44641527的博客 233

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java枚举类、异常、常用类

默认继承Enum类,可以使用其方法:枚举对象名字name/枚举对象编号0开始orainal/返回数组所有枚举对象values/匹配枚举对象valueOf/比较枚举常量compareTo。String的增强,是可变长度的,直接父类是AbstractStringBuffer有属性char[] value 不是final,用于存放字符串内容(堆中)String的增强,是可变长度的,推荐单线程使用,是final类不能被继承,StringBuilder对象可以串行化;

m0_52125435的博客 340

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java 中的enum类

在Java中可以使用enum来定义一个枚举类。枚举类属于类,是一种特殊的类。 enum类的基类 enum还有基类?是的!每一个enum类都默认有一个基类java.lang.Enum,通过javap -v反编译enum类的class文件可以得到验证: > javap -v com.company.TestEnum Classfile /C:/Users/gyb_c/IdeaProjects/test/out/production/test/com/company/TestEnum.class Las

Cloud-Future的博客 5782

Java【常用类的应用】

Java其他常用类应用归纳

在下的博客 992

java中的enum-java中特殊的class;通过字节码来分析enum构成

§1先思考一个问题 先思考一个问题:我们在enum类里,可以直接使用values()或valueOf(String name)方法,我们也没有在enum类里定义这两个方法,怎么就能直接使用呢? 这里先按下不表。 下面是正文。 §2 enum类及其编译后的字节码 在java编程中,我们经常会定义和使用枚举。 简单的enum类及其字节码概览 一个简单的 enum 类定义如下: pu...

gzyes 1477

Java enum

enum类其实继承了java.lang.Enum.class。 以下为基本用法: package com.example.demo.enums; import java.util.EnumMap; import java.util.EnumSet; /** * @author Grace.Pan * @date 2019/6/18 */ public enum Season { ...

joy_pan的博客 1044

Java中的常用类

java中的常用类 java中的常用类主要包括五种。 1.字符串相关类(String、StringBuffer) 2.基本数据类型包装类 3.Math类 4.File类 5.Enum类(枚举)   字符串相关类:一,String在java中不属于四类八种的基本数据

李颖杰--廊坊师范学院七期信息技术提高班 1326

Java基础14(Enum 枚举类 BigInteger类BigDecimal类 内部类)

为了让编译器能自动检查某个值在枚举的集合内,并且,不同用途的枚举需要不同的类型来标记,不能混用,我们可以使用enum来定义枚举类枚举和int定义的常量相比,使用enum定义枚举有如下好处:●enum常量本身带有类型信息,即Weekday.SUN类型是Weekday,。●不可能引用到非枚举的值,因为无法通过编译。●不同类型的枚举不能互相比较或者赋值,因为类型不符。

qq_52897007的博客 1124

Java-常用类(三)——Math类、File类 、Enum类

Math类、File类、Enum枚举类

qq_43273590的博客 213

常用类:包装类、String类和日期类

目录一、包装类二、字符串类三、日期类Math类Random类枚举enum 一、包装类 概念 ---基本数据类型不是对象,所以就有基本数据类型对应的类,称为包装类 基本数据类型 包装类 byte Byte boolean Boolean short Short char Character int Integer long Long float Float double Double

D. 253

Java枚举详解:enum关键字、Java枚举(Enum)类、EnumMap 与 EnumSet

目录 一、Java中的枚举 1、声明枚举类型 2、Enum类的常用方法 3、为枚举添加方法 二、EnumMap 与 EnumSet 1、EnumMap 类 2、EnumSet 类 一、Java中的枚举 枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。枚举在曰常生活中很常见,例如一个人的性别只能是“男”或者“女”,一周的星期只能是 7 天中的一天等等。类似这种当一个变...

小宇飞刀的BLOG 1538

常用类之DecimalFormat类、enum、Random类

1.DecimalFormat类 出现这样千分位格式的数字,¥123,456.00,DecimalFormat类可以满足这样的需求。 //格式化人民币 String rmb=DecimalFormat.getCurrencyInstance().format(12356); System.out.println(rmb); //引入千分位 int i=1111122222 DecimalForm...

a1k2l45k的博客 254
上一篇: Java常用类:基本数据类型的包装类
下一篇: Java常用类:异常看这篇就够了
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值