用实例域代替序数

在Java中,枚举类型的ordinal()方法返回枚举常量的序数(即其在枚举声明中的位置)。在某些情况下,使用实例域(instance field)代替序数可能更加安全和易读。以下是一个示例,演示如何使用实例域代替序数:

// 使用实例域代替序数的例子
enum Direction {NORTH(0, "North"),SOUTH(1, "South"),EAST(2, "East"),WEST(3, "West");private final int code;private final String name;Direction(int code, String name) {this.code = code;this.name = name;}public int getCode() {return code;}public String getName() {return name;}
}// 示例类,使用Direction枚举
class ExampleClass {private Direction direction;public ExampleClass(Direction direction) {this.direction = direction;}public void printDirectionInfo() {System.out.println("Direction Code: " + direction.getCode());System.out.println("Direction Name: " + direction.getName());}
}public class EnumWithInstanceFieldExample {public static void main(String[] args) {// 使用实例域代替序数的枚举Direction eastDirection = Direction.EAST;// 示例类使用Direction枚举实例ExampleClass example = new ExampleClass(eastDirection);example.printDirectionInfo();}
}

在这个例子中,Direction枚举使用了实例域codename来表示每个方向的代码和名称。通过这种方式,你可以更加灵活地控制枚举常量的属性,并避免了直接使用序数的潜在问题。

ExampleClass类使用Direction枚举作为实例域,通过调用getCode()getName()方法来获取方向的代码和名称。这种方式提高了代码的可读性和可维护性,并且减少了对枚举序数的依赖。

总的来说,使用实例域代替序数是一种良好的实践,特别是当你需要更多的灵活性和安全性时。这样可以使代码更具表达性,并且降低了因为枚举常量的顺序变动而引起的 bug 的风险。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/224406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql CREATE DATABASE

DROP DATABASE IF EXISTS zengwenfeng;CREATE DATABASE zengwenfeng DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;USE zengwenfeng; 脚本天天少这些,天天找这段!

computed 和 watch 的奇妙世界:让数据驱动你的 Vue 应用(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

TestSSLServer4.exe工具使用方法简单介绍(查SSL的加密版本SSL3或是TLS1.2)

一、工具使用方法介绍 工具使用方法参照:http://www.bolet.org/TestSSLServer/ 全篇英文看不懂,翻译了下,能用到的简单介绍如下: 将下载的TestSSLServer4.exe工具放到桌面上,CMD命令行进入到桌面目录,执…

解决Requires: socat异常

安装mariaDB10报错: Error: Package: galera-4-26.4.16-1.el7.centos.x86_64 (mariadb)Requires: socat Error: Package: galera-4-26.4.16-1.el7.centos.x86_64 (mariadb)Requires: libboost_program_options-mt.so.1.53.0()(64bit)You could try using --skip-br…

从 0 开始创建 SpringBoot 项目

从 0 开始创建 SpringBoot 项目 从 0 开始创建 SpringBoot 项目环境准备创建项目项目目录结构及说明编写代码参考 从 0 开始创建 SpringBoot 项目 环境准备 操作系统:Windows 10IDE:IntelliJ IDEA 2023.3.1Java 版本:jdk1.8 工具网盘链接&…

俄罗斯军方计划用 Astra Linux 取代 Windows!

网络安全正在改变全球化的面貌,各国政府为了防范外国的间谍和破坏活动,正积极发展自己的技术。在这一趋势下,俄罗斯军方已经开始用 Linux 发行版 Astra Linux 替换 Windows 系统。 如何提高Linux系统安全性?提升Linux安全的关键策…

垃圾收集器及内存分配

目录 垃圾收集器种类 HotSpot虚拟机所包含的收集器 垃圾收集器部分源码 垃圾收集器后台日志参数说明与配对关系 1、串行垃圾收集器 串行垃圾收集器运行示意图 1)、编写测试代码 2)、设置垃圾回收为串行收集器 3)、启动程序&#xff…

Flink 数据集类型

现实世界中,所有的数据都是以流式的形态产生的,不管是哪里产生的数据,在产生的过程中都是一条条地生成,最后经过了存储和转换处理,形成了各种类型的数据集。如下图所示,根据现实的数据产生方式和数据产生是…

基于JavaWeb+SSM+Vue微信小程序的移动学习平台系统的设计和实现

基于JavaWebSSMVue微信小程序的移动学习平台系统的设计和实现 源码获取入口Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 Lun文目录 第1章 绪论 1 1.1 课题背景 1 1.2 课题意义 1 1.3 研究内容 2 第2章 开发环…

【基础篇】1.1 认识STM32(二)

3.3 VREF/VREF-引脚 VREF和VREF-是STM32中用于提供参考电压的引脚。如下图: VREF引脚可以连接一个单独的外部参考电压,范围在2.0V~VDDA,但不能超过VDDA,否则就超过了模拟器件的最大供电电压。在100引脚的封装中&#…

文件上传自动化测试方案(超详细)

一、概述 【测试地址】:https://pan.baidu.com 【测试工具】:selenium、requests 【脚本语言】:Python 【运行环境】:Windows 百度网盘作为文件存储及分享的平台,核心功能大部分是对文件的操作,如果要…

基于高通MSM8953平台的android系统GPIO驱动开发

一、GPIO驱动: 1.1、注册设备: 1.1.1、创建文件: 1)、在kernel/msm-4.9/drivers/下创建july文件夹。 2)、在july文件夹下创建Kconfig、Makefile、ledctrl.c文件。 3)、修改Kconfine文件: 添加 source "drivers/july/Kconfig" 4)、修改Makefile文件: 添…

如何一键打开系统属性,编辑环境变量

常规方法: ①右键此电脑→打开属性 ②在控制面版中→系统与安全→系统 对于以上方法,我的电脑都不行,右键属性没反应;点击系统也没反应,这时打开运行窗口(winR)→输入sysdm.cpl →就可以直接到…

什么是PHP中的多态?

在面向对象编程(OOP)中,多态(Polymorphism)是一个重要的概念,它允许对象能够以多种形式进行操作。多态性使得具有相同接口的不同对象可以被同样的方式处理,从而提高了代码的灵活性和可扩展性。 …

Linux--Docker容器(最新)

这里写目录标题 安装Docker安装指令配置加速器 Docker简介名词解释作用run命令解读 操作常见命令命令的别名 数据卷简介数据卷命令使用 本地目录挂载问题发现问题解决二级目录二级目录 安装Docker 安装指令 如下文档 https://b11et3un53m.feishu.cn/wiki/Rfocw7ctXij2RBkShcu…

C# ref传参与out传参

在 C# 中,ref 和 out 都是用于传递参数的关键字 1、ref 关键字: ref 用于将一个变量传递给方法,并允许方法修改该变量的值。 调用方法时,必须先初始化被 ref 修饰的变量,否则会编译错误。 方法内部可以不给 ref 参数重…

【教3妹学编程-算法题】反转二叉树的奇数层

插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 坚持不懈,越努力越幸运,大家一起学习鸭~~~ 3妹:“你不是真正的快乐, 你的…

开具实习证明:在线实习项目介绍

大数据在线实习项目,是在线上为学生提供实习经验的项目。我们希望能够帮助想要在毕业后从事数据科学类工作的学生更加顺利地适应从教室到职场的转换;也帮助那些在工作中需要处理数据、实现数据价值的其他职能的从业者高效快速地掌握每天都能用起来的数据…

代码求解方程

说在前面 🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。 题目描述 求解一个给定的方程,将x以字符串 “x#value” 的形式返回。该方程仅包含 ‘’ &…

【5】基于多设计模式下的同步异步日志系统-代码设计

8. 代码设计 8.1 实用类设计 提前完成⼀些零碎的功能接⼝,以便于项⽬中会⽤到。 • 获取系统时间 • 判断⽂件是否存在 • 获取⽂件的所在⽬录路径 • 创建⽬录 /* 通⽤功能类,与业务⽆关的功能实现1. 获取系统时间2. 获取⽂件⼤⼩3. 创建⽬录4. 获取⽂…