《Java工程师必读手册》——Java编程技巧系列——Java编程技巧之样板代码(3)

简介: 《Java工程师必读手册》——Java编程技巧系列——Java编程技巧之样板代码(3)

接上篇:https://developer.aliyun.com/article/1228117?spm=a2c6h.13148508.setting.31.21084f0eNCKPti


三、 定义枚举类

 

1. 常用定义方式

 

通常,我们会如下定义枚举类:

 

image.png 

 

2. 一些优化建议

 

1) 修饰符private可缺省

 

通过SonarLint插件扫描,会出现以下问题:

 

image.png

 

根据建议,应该删除构造方法前多余的private修饰符。

 

2) 建议使用基础类型

 

用包装类型Integer保存枚举取值,本身并没有什么问题。但是,本着能用基础类型就用基础类型的规则,所以建议使用基础类型int。

 

 

3) 建议使用final字段

 

假设,我们要实现一个静态方法,可能一不小心就把枚举值给修改了:

 

image.png

 

如果调用了modifyValue方法,就会把枚举值修改,导致应用程序出错。为了避免这样的情况出现,我们建议对字段添加final修饰符,从而避免字段值被恶意篡改。

 

3. 最佳定义方式

 

image.png


 接下篇:https://developer.aliyun.com/article/1228115?groupCode=java

相关文章
|
项目管理
深入解析PMP项目内部运营环境
在项目管理领域,PMP认证是一项备受尊敬的资格,它强调了对项目内部运营环境的深刻理解。PMP专业人士不仅需要了解项目管理的基本原则,还需要熟悉项目内部运营环境的方方面面。本文将深入探讨PMP项目内部运营环境的重要性以及如何有效管理这一环境。
|
10月前
|
人工智能 自然语言处理 数据挖掘
智能体(AI Agent)开发实战之【LangChain】(三)结合大模型基于RAG实现本地知识库问答优化
智能体(AI Agent)开发实战之【LangChain】(三)结合大模型基于RAG实现本地知识库问答优化
|
XML Java API
List与String相互转化的方法有哪些
摘要:本文概述了Java中List转换为String及反之的多种策略。使用`String.join()`可简洁地连接List元素;`StringBuilder`提供灵活控制;Java 8 Stream API收集器简化操作;Apache Commons Lang3的`StringUtils.join()`和Guava的`Joiner.on()`支持外部库的高效转换。
847 2
|
设计模式 开发框架 算法
【QML 创建界面】QML界面的动态创建及其其他方法 (Dynamic Creation of QML Interfaces and Other Methods)
【QML 创建界面】QML界面的动态创建及其其他方法 (Dynamic Creation of QML Interfaces and Other Methods)
1824 0
扫描工具 -- Nuclei
扫描工具 -- Nuclei
1303 0
|
人工智能
让AI帮忙写个需求,AI写出来了,只是有bug而已(二)
让AI帮忙写个需求,AI写出来了,只是有bug而已
让AI帮忙写个需求,AI写出来了,只是有bug而已(二)
|
容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——ECI概述
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——ECI概述自制脑图
242 1
|
存储 编译器 C语言
C语言学习分享(第三次)------了解C语言-下
我们紧接着上一章了解C语言-上往下分享C语言的基础知识,在这之前我们先引入一个表格,叫ASCLL码表,它向我们展示了每个Ascll码值对应的字符,这里我们可以跳转到Ascll码表了解一下.我们可以看见Ascll码值从65到90是大写字母A到Z,Ascll码值97到122是小写字母a到z.大小写字母相差32个Ascll值,也就是相差一个空格字符(space).我们先了解一下,后期做题可能会用
|
机器学习/深度学习 人工智能 缓存
Python零基础快速入门系列(1)人工智能序章:开发环境搭建Anaconda+VsCode+JupyterNotebook(零基础启动)
本文将采用Anaconda+VsCode+JupyterNotebook的方案,环境安装完毕后,将拥有Python运行环境、常见的Python库例如python三剑客:Numpy、matplotlib、pandas、机器学习库sklearn全都有了。
520 0
Python零基础快速入门系列(1)人工智能序章:开发环境搭建Anaconda+VsCode+JupyterNotebook(零基础启动)
|
消息中间件 Apache RocketMQ
优秀实践案例征集火热开启,快来投稿!
RocketMQ 社区「优秀实践案例征集」活动开始啦! 将RocketMQ实践过程中的最佳实践与踩坑经历,快来和大家分享 优秀案例作者更有机会参与RocketMQ Summit、获得社区纪念
228 0
优秀实践案例征集火热开启,快来投稿!