当前位置: 首页 > news >正文

学习嵩山版《Java 开发手册》:编程规约 - 常量定义(P5)

概述

  1. 《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,他旨在提升开发效率和代码质量

  2. 《Java 开发手册》是一本极具价值的 Java 开发规范指南,对于提升开发者的综合素质和代码质量具有重要意义

  3. 学习《Java 开发手册》是一个提升 Java 编程技能、了解行业最佳实践和规范的好方法


编程规约 - 常量定义 P5

1、基本介绍
  • 【推荐】如果变量值仅在一个固定范围内变化用 enum 类型来定义。

  • 说明:如果存在名称之外的延伸属性应使用 enum 类型,下面正例中的数字就是延伸信息,表示一年中的第几个季节。

public enum SeasonEnum {SPRING(1), SUMMER(2), AUTUMN(3), WINTER(4);private int seq;SeasonEnum(int seq) {this.seq = seq;}public int getSeq() {return seq;}
}
2、学习补充
  1. 变量值仅在一个固定范围内变化可以使用常量定义,也可以使用 enum 类型来定义
// 使用常量定义
public class DayConstants {public static final int MONDAY = 1;public static final int TUESDAY = 2;public static final int WEDNESDAY = 3;public static final int THURSDAY = 4;public static final int FRIDAY = 5;public static final int SATURDAY = 6;public static final int SUNDAY = 7;
}
// 使用 enum 类型定义
public enum DayOfWeek {MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
}
  1. 如果存在名称之外的延伸属性使用 enum 类型更加合适
public enum TrafficLight {RED(30), // 红灯持续30秒YELLOW(5), // 黄灯持续5秒GREEN(45); // 绿灯持续45秒private final int durationInSeconds;// 构造器,用于初始化枚举常量的字段TrafficLight(int durationInSeconds) {this.durationInSeconds = durationInSeconds;}// 获取持续时间的方法public int getDurationInSeconds() {return durationInSeconds;}
}
for (TrafficLight light : TrafficLight.values()) {System.out.println(light + " 持续 " + light.getDurationInSeconds() + " 秒");
}
# 输出结果RED 持续 30 秒
YELLOW 持续 5 秒
GREEN 持续 45 秒
  • 注:Java 中 enum 类型的构造器是私有的,这是确保枚举类型的实例是唯一的、固定的,且不能将枚举的构造器显式地声明为 public
public enum Color {RED("#FF0000"), GREEN("#00FF00"), BLUE("#0000FF");private final String hexCode;Color(String hexCode) {this.hexCode = hexCode;}public String getHexCode() {return hexCode;}
}
 Color color = new Color("#FF0000");
# 输出结果java: 无法实例化枚举类型

相关文章:

学习嵩山版《Java 开发手册》:编程规约 - 常量定义(P5)

概述 《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,他旨在提升开发效率和代码质量 《Java 开发手册》是一本极具价值的 Java 开发规范指南,对于提升开发者的综合素质和代码质量具有重要意义 学习《Java 开发手册》是一个提升 Jav…...

洛谷 P1595 信封问题 C语言递归

题目描述 某人写了 n 封信和 n 个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。 输入格式 一个信封数 n,保证 n≤20。 输出格式 一个整数,代表有多少种情况。 输入输出样例 输入 #1 2 输出 #1 1 输入 #2 …...

QT创建一个模板槽和信号刷新UI

文章目录 信号与槽的声明work.cpp 信号与槽的连接 在Qt中,若您想设计一个仅含一个信号和槽函数框架,用以刷新UI上多个类型相同但可能属性各异的控件,我们可以借助QVariant的灵活性来传递不同种类的数据,同时利用控件的名称或某种标…...

【计算机视觉基础CV-图像分类】01- 从历史源头到深度时代:一文读懂计算机视觉的进化脉络、核心任务与产业蓝图

1.计算机视觉定义 计算机视觉(Computer Vision)是一个多学科交叉的研究领域,它的核心目标是使计算机能够像人类一样“看”并“理解”视觉信息。换句话说,它希望赋予计算机从图像、视频中自动提取、有意义地分析、理解并解释视觉场…...

C# cad启动自动加载启动插件、类库编译 多个dll合并为一个

可以通过引用costura.fody的包,编译后直接变为一个dll 自动加载写入注册表、激活码功能: 【CAD二次开发教程-实例18-启动加载与自动运行-哔哩哔哩】 https://b23.tv/lKnki3f https://gitee.com/zhuhao1912/cad-atuo-register-and-active...

Mybatis增删改查(配置文件版)

准备环境 1、数据库表tb_brand 2、实体类Brand 3、测试用例 3、1在test包中的java包中创建测试类com.xyy.test.MybatisTest.java 4、安装MyBatisX插件 添加插件后,因为在Mapper代理开发时,Mapper接口要和Mapper.xml映射文件放在同一个报下&#xff0…...

【Spring Security系列】5 次密码错误触发账号锁定?Spring Security 高效实现方案详解

作者:后端小肥肠 🍇 我写过的文章中的相关代码放到了gitee,地址:xfc-fdw-cloud: 公共解决方案 🍊 有疑问可私信或评论区联系我。 🥑 创作不易未经允许严禁转载。 姊妹篇: 【Spring Security系列…...

笔记day5

文章目录 1 复习2 最完美的解决方案,解决轮播图问题3 开发Floor组件4 把首页中的轮播图拆分为一个共用全局组件5 search模块开发 1 复习 完成商品分类三级列表路由跳转一级路由传参(合并参数)完成search模块中对于typeNav的使用(…...

Linux快速入门-兼期末快速复习使用

Linux快速入门-兼期末快速复习使用 一小时快速入门linux快速一:Linux操作系统概述1. Linux概述1.1 定义与特点1.2 起源与发展1.3 Linux结构1.4 版本类别1.5 应用和发展方向 2. 安装与启动2.1 Windows下VMware安装Linux2.2 安装Ubuntu 快速二:linux的桌面…...

浅谈文生图Stable Diffusion(SD)相关模型基础

1.U-Net模型基础 1.基础概念 UNet模型是一种基于卷积神经网络的图像分割算法,它采用了U型的网络结构,由编码器(下采样路径)和解码器(上采样路径)两部分组成。 编码器负责提取输入图像的特征,…...

Vivado使用VScode编译器

旧版Vivado使用Vscode编译器偶尔会出现VScode界面卡死的情况,在新版的Vivado中(我的是Vivado 2023.2),可以使用如下方式: 在设置中选择Text Editor,选择Custom Editor 在对话框中输入以下语句:…...

CEF127 编译指南 MacOS 篇 - 拉取 CEF 源码(五)

1. 引言 在完成了所有必要工具的安装和配置后,我们进入到获取 CEF 源码的阶段。对于 macOS 平台,CEF 的源码获取过程需要特别注意不同芯片架构(Intel 和 Apple Silicon)的区别以及版本管理。本文将详细介绍如何在 macOS 系统上获…...

Jenkins 中 写 shell 命令执行失败,检测失败问题

由于项目的 依赖复杂,随着版本的增多,人工操作,手误几率太大,我们选取kenins 来自动化发布、更新。 这里主要解决,发布 的 每个阶段,确保每个阶段执行成功。 比如: js 运行,…...

Java程序打包成exe,无Java环境也能运行

Java程序开发完成后,通常情况下以jar包的形式发布。但有时我们需要给非软件开发人员使用程序,如制作好窗体应用,把它发给没有java开发环境的人使用,此时就需要制作exe安装包。本文介绍如何将java程序制作成exe安装包,并…...

【java 正则表达式 笔记】

文章目录 快速入门匹配中文或数字或大小写字母(一个或多个) 正则表达式底层实现(重要)mather.find() 完成的任务mather.group(0) 分析 正则表达式基本语法元字符转义字符区分大小写限定字符选择匹配符特殊字符字符匹配符定位符 分组、捕获和反向引用捕获特别分组反向引用经典结…...

基于PWLCM混沌映射的麋鹿群优化算法(Elk herd optimizer,EHO)的多无人机协同路径规划,MATLAB代码

一、麋鹿群优化算法EHO 基本概念 麋鹿群优化算法(EHO,Elephant Herding Optimization)是2024年提出的一种启发式优化算法,它的灵感来自麋鹿群的繁殖过程。麋鹿有两个主要的繁殖季节:发情和产犊。在发情季节&#xff0…...

Vue2五、自定义指令,全局局部注册、指令的值 ,插槽--默认插槽,具名插槽 ( 作用域插槽)

一、自定义指令 使用步骤 1. 注册 (全局注册 或 局部注册) ,在 inserted 钩子函数中,配置指令dom逻辑 2. 标签上 v-指令名 使用 1、自定义指令(全局) Vue.directive("指令名",{ 指令的配置项 insert…...

Pika Labs技术浅析(五):商业智能技术

Pika Labs 的商业智能旨在通过联机分析处理(OLAP)和数据仓库(Data Warehouse)等技术,帮助企业用户高效地进行数据分析和决策支持。 一、商业智能技术模块概述 Pika Labs 的商业智能技术模块旨在通过集成数据仓库和联机…...

YOLO-World:Real-Time Open-Vocabulary Object Detection

目录 摘要 Abstract YOLO-World 1 模型架构 1.1 Text Encoder 1.2 YOLO Backbone 2 RepVL-PAN 2.1 T-CSPLayer 2.2 I-Pooling Attention 2.3 预测 3 消融实验 3.1 预训练数据 3.2 RepVL-PAN的消融实验 3.3 文本编码器 4 效果展示 4.1 零样本 4.2 根据词汇表检…...

Fastjson <= 1.2.47 反序列化漏洞复现

0x01 前言 Fastjson 是一个 Java 语言编写的高性能功能完善的 JSON 库&#xff0c;可以将 Java 对象转换为 JSON 格式&#xff0c;也可以将 JSON 字符串转换为 Java 对象&#xff0c;在中国和美国使用较为广泛。 0x02 漏洞成因 Fastjson < 1.2.68 版本在处理反序列化对象时…...

仅剩最后47份!《Midjourney概念艺术创作密钥手册》(含23个受版权保护的材质编码+动态光照参数表)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;《Midjourney概念艺术创作密钥手册》核心价值与版权说明 核心价值定位 本手册聚焦于概念艺术创作中“意图—提示—反馈—迭代”的闭环实践&#xff0c;提炼出可复用的提示工程范式、风格锚定策略与跨模态语义…...

Prompt核心原则与技巧

1. Prompt的本质Prompt是用户和模型之间的"接口"。设计好的Prompt就像把话说清楚——越清楚&#xff0c;模型越能给你想要的答案。类比&#xff1a;就像你请人帮忙做事&#xff1a;说"帮我处理一下" → 对方可能做错说"帮我把这封信装进信封&#xff…...

别再只用在线版了!手把手教你用Docker在本地服务器搭建私有Draw.io图表库

私有化部署Draw.io&#xff1a;用Docker打造企业级安全图表库 当团队需要处理敏感数据时&#xff0c;将核心工具部署在本地环境已成为刚需。以Draw.io为例&#xff0c;虽然其在线版功能完善&#xff0c;但数据经过第三方服务器的风险始终存在。本文将带你用Docker构建一个完全自…...

体验Taotoken多模型路由带来的高稳定性与低延迟响应

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 体验Taotoken多模型路由带来的高稳定性与低延迟响应 在构建依赖大模型能力的应用时&#xff0c;开发者最关心的两个核心指标往往是…...

探索Harepacker复活版:打造你的MapleStory创意工坊

探索Harepacker复活版&#xff1a;打造你的MapleStory创意工坊 【免费下载链接】Harepacker-resurrected All in one .wz file/map editor for MapleStory game files 项目地址: https://gitcode.com/gh_mirrors/ha/Harepacker-resurrected 你是否曾经梦想过亲手改造Map…...

别再为VMware里Kali上不了网发愁了!三种网络模式(桥接/NAT/仅主机)保姆级配置与排错指南

VMware中Kali Linux网络配置全攻略&#xff1a;从原理到实战排错 当你第一次在VMware中启动Kali Linux准备大展身手时&#xff0c;却发现连最基本的网络连接都无法建立——这种挫败感我深有体会。作为网络安全学习和渗透测试的必备工具&#xff0c;Kali在虚拟机中的网络配置往往…...

每天节省25分钟!淘宝淘金币全自动任务脚本终极指南

每天节省25分钟&#xff01;淘宝淘金币全自动任务脚本终极指南 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本&#xff0c;包含蚂蚁森林收取能量&#xff0c;芭芭农场全任务&#xff0c;解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi 你是否厌…...

自然语言处理进阶:用BERT实现文本相似度计算

在软件测试领域&#xff0c;文本相似度计算是一项极具实用价值的技术。它能助力测试人员高效完成重复用例排查、智能测试用例生成、用户反馈聚类等任务&#xff0c;大幅提升测试工作的效率与精准度。传统的文本相似度计算方法&#xff0c;如基于词频的TF-IDF、基于词向量的Word…...

STM32串口高效通信秘籍:巧用DMA+空闲中断实现不定长数据收发(基于CubeIDE)

STM32串口高效通信秘籍&#xff1a;巧用DMA空闲中断实现不定长数据收发&#xff08;基于CubeIDE&#xff09; 在物联网设备和嵌入式系统开发中&#xff0c;串口通信是最基础也最关键的通信方式之一。无论是传感器数据采集、设备间通信还是与上位机交互&#xff0c;稳定高效的串…...

Sunshine游戏串流完整指南:5分钟搭建你的个人游戏云

Sunshine游戏串流完整指南&#xff1a;5分钟搭建你的个人游戏云 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 还在为无法在客厅大屏上畅玩书房电脑里的3A大作而烦恼吗&#xff1…...