《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

相关文章
|
数据可视化 安全 关系型数据库
写给工程师的 MacBook 商用级大模型知识库部署方案(上)
写给工程师的 MacBook 商用级大模型知识库部署方案(上)
933 2
|
机器学习/深度学习 数据采集 人工智能
大模型升级与设计之道:ChatGLM、LLAMA、Baichuan及LLM结构解析(上)
大模型升级与设计之道:ChatGLM、LLAMA、Baichuan及LLM结构解析(上)
1383 0
|
存储 Kubernetes 算法
MinIO 分布式集群搭建
MinIO 分布式集群搭建 分布式 Minio 可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式 Minio 避免了单点故障。 Minio 分布式模式可以搭建一个高可用的对象存储服务,你可以使用这些存储设备,而不用考虑其真实物理位置。
7318 0
|
5月前
|
人工智能 自然语言处理 数据挖掘
智能体(AI Agent)开发实战之【LangChain】(三)结合大模型基于RAG实现本地知识库问答优化
智能体(AI Agent)开发实战之【LangChain】(三)结合大模型基于RAG实现本地知识库问答优化
|
存储 数据安全/隐私保护
如何选择使用字节流还是字符流
在处理文件或网络数据时,选择字节流(如InputStream/OutputStream)适合处理二进制数据,而字符流(如Reader/Writer)则适用于文本数据,能自动处理字符编码问题,确保文本正确读写。选择依据主要看数据类型及是否需要编码转换。
248 3
|
前端开发
通义灵码,厉害👍👍👍
通过简单的几句话描述,即可快速生成完整的前端页面,大幅提高开发效率,降低前端开发门槛。适用于多种场景,让设计与开发更加高效便捷。
|
XML Java API
List与String相互转化的方法有哪些
摘要:本文概述了Java中List转换为String及反之的多种策略。使用`String.join()`可简洁地连接List元素;`StringBuilder`提供灵活控制;Java 8 Stream API收集器简化操作;Apache Commons Lang3的`StringUtils.join()`和Guava的`Joiner.on()`支持外部库的高效转换。
690 2
|
存储 编解码 人工智能
VLMs多模态大模型当下进展与思考(1)
VLMs多模态大模型当下进展与思考
627 9
|
消息中间件 缓存 NoSQL
个人项目中技术落地的基础入门(2)
个人项目中技术落地的基础入门
236 7
|
缓存 NoSQL Java
个人项目中技术落地的基础入门(1)
个人项目中技术落地的基础入门
324 6