关注我,每天三分钟,带你轻松掌握一个Java相关知识点。

1.为什么要用枚举

你在读一个老工程代码时,是否经常看见有几个类,里面放着成百上千的静态常量,场面相当恐怖,而且如果不加注释,很多你都不知道这些常量代表这什么。而且这些静态常量可以随意更改甚至参加计算,安全性就不用说了。

你在读业务源码时,经常性的能看到这样的代码:

要是这1234没有注释,那真的心态当场爆炸。

为了解决以上这些问题,枚举类型就应运而生了。那么什么是枚举类呢?它又怎么解决上述问题的呢?

我们来看看枚举类的使用:

运行结果:

以上是一个简单的枚举类示例,我们可以看到,代码的可读性明显增强了,你能直接通过枚举项了解它代表的意思,远远胜于之前的一堆完全不知道是什么意思的静态变量。

switch-case语句对枚举的支持更是让代码书写的便捷性大大提高。

代码的后期维护,我就不用多说了吧,如果用以前的1234,你还要去静态常量类中去找解释去。

2.怎么创建枚举

1)要在类上加上 enum

2)把枚举项,用有意义的单词表达出来,如MAN、WOMAN(这里推荐大写)。

其实以上两步就完成了一个枚举类的创建。但你可以使用枚举项的属性来完成更高级的用法。

3)在枚举上后面加上括号,可以写多个属性,但要注意,每个枚举项的属性类型和数量要保持一致。

4)在构造参数中,添加你的枚举类的属性,并构建对应属性的get方法。

3.应用场景

1)字典表中对应的字典。如果你是写web后端的人员,那么前端传过来的下拉框中的属性值你一定不陌生,我们之前常用的做法是去字典表中根据code去查name,有了枚举,你可以针对一些不经常改动的字典生成枚举,如男女、是否、星期。

2)与switch-case合用。上述例子用已经给出了使用例子,可以看到代码可读性非常高,即使换另一个程序员来维护,也能轻松读懂。

3)标识一些常量。这个用法就和之前静态常量的使用方法相同了,另外多说一句,枚举类编译完后,也是public static final +枚举项。

以上就是今天的知识点,各位小伙伴get到吗?创作不易,望各位多多点赞收藏,有什么建议可以留言告诉我,我会积极采纳!

java 下拉列表 枚举_「Java三分钟」精准而优雅——枚举类详解相关推荐

  1. Java多线程系列(九):CountDownLatch、Semaphore等4大并发工具类详解

    之前谈过高并发编程系列:4种常用Java线程锁的特点,性能比较.使用场景 ,以及高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8) 今天主要介绍concurre ...

  2. java基础知识点_「Java面试题/知识点精华集」20000+字的Java基础知识篇(2020最新版) !

    " 本文已经收录进我的 79K Star 的 Java 开源项目 JavaGuide:https://github.com/Snailclimb/JavaGuide (「Java学习+面试指 ...

  3. bigint对应java什么类型_「JAVA」从格式化输出到扫描输入,深究Java正则表达式匹配之道

    字符串是不可变的 字符串是不可变的,也就是说当字符串的内容发生改变的时候,会创建一个新的String对象:但是如果内容没有发生改变的时候,String类的方法会返回原字符串对象的引用. 而正则表达式往 ...

  4. 使用阿里云服务器三分钟搭建网站教程(详细图文详解)

    使用阿里云服务器快速搭建网站教程,先为云服务器安装宝塔面板,然后在宝塔面板上新建站点,阿里云服务器网以搭建WordPress网站博客为例,来详细说下从阿里云服务器CPU内存配置选择.Web环境.域名解 ...

  5. 「全网最细」:MRP1视图所有字段详解及实战应用 - 合集

    : 视频详解 注:本文章建议要结合视频进行观看 声明:本文仅代表原作者观点,仅用于SAP软件的应用和学习,不代表SAP公司.注:文中所示截图来源于SAP软件或PA官方教材,相应著作版权归SAP所有. ...

  6. extend implements多个对象_「每天三分钟跟我学Java」之Java面向对象的封装、继承、多态...

    Java是面向对象的语言,深入理解面向对象的概念,对Java的开发至关重要.本节我们着重看下面向对象的三大特性,封装.继承.多态. 一.封装 封装是将类的某些信息隐藏在类内部,不允许外部程序直接访问, ...

  7. java for 循环中if判断只进入第一个_「每天三分钟跟我学Java」之条件语句和循环结构...

    在实际项目中,条件判断和循环结构都是使用频率非常高的知识点,本节我们来看下这两部分. 一.条件语句 条件语句是对一个布尔型表达式进行判断,true时执行一个分支的操作,false时执行另一个分支的操作 ...

  8. java集群_「Java知识」MyCat的图文视频讲解,MyCat分片集群分表分库策略

    在一个项目当中,项目经理要求把原先的MySQL数据连接基于mycat来进行改造 .当时就在想MyCat是什么东西?为什么要用它呢? 蚂蚁课堂带你学Java 一.什么是MyCat: MyCat是一个开源 ...

  9. java query接口_「软帝学院」Java零基础学习详解

    软帝学院笔记Day26 01DButils工具类的介绍个三个核心类 * A: DButils工具类的介绍个三个核心类 * a: 概述 * DBUtils是java编程中的数据库操作实用工具,小巧简单实 ...

最新文章

  1. DJango-如何快速准备Python虚拟开发环境并快速定制一个项目
  2. Python r‘‘, b‘‘, u‘‘, f‘‘ 的含义
  3. 马云、马斯克同台谈AI:人工智能拯救世界?
  4. 4月27日微软云训练营活动-现场图集
  5. 斗地主(矩阵快速幂)
  6. Luogu P1280 Niko的任务【线性dp】By cellur925
  7. 腾讯音乐Q3财报多点开花,属于数字音乐时代的新浪潮已至
  8. mysql workbench 存储过程_MySQL Workbench创建存储过程教程示例
  9. 科比生涯自述:忍受,然后征服——这就是曼巴精神
  10. 在Python中查找字符串长度
  11. Linux 系统性能分析工具图解读
  12. 基于51单片机的数字万用表设计
  13. Deepin系统配置开机自启动
  14. leetcode 1647
  15. 量化高频交易从0到1(期货CTP,纳秒级,高频、趋势及套利策略)课程大纲
  16. CloudComparePCL 点云点匹配(基于点到面的距离)
  17. 老师计算机组合照说说,生物老师座右铭 教师照片墙格言
  18. 【智能工厂】PPT案例分享:智慧工厂解决方案
  19. 三种Android图片压缩方法 压缩到指定大小
  20. PSINS源码阅读—test_SINS_trj

热门文章

  1. Android之如何实现阿拉伯版本(RTL)的recycleView的网格布局
  2. React Native之通过createStackNavigator实现携带参数的页面与页面之间的跳转
  3. Android之图片边显示模糊原因
  4. 栈和队列之设计一个有getMin(得到最小值)功能的栈
  5. Web程序员的Mysql进阶序一之sql使用分类及基础
  6. 10岁吊打职业教师的天才,仅用10篇论文称霸数学界160多年,40岁英年早逝却迄今无人超越...
  7. 有趣的灵魂连墓碑都很酷! | 今日趣图
  8. 三次握手和四次挥手图解_三次握手和四次挥手简单理解
  9. 宝塔linux面板假设nextcloud,宝塔面板部署NextCloud(14.0.3)逐一解决后台安全及设置警告...
  10. mysql 修改库的校对集_mysql数据库的基本操作(增删改查、字符集、校对集)