您的位置 首页 java

java里枚举非常实用的3个方法,程序员一般都不注意

面试

面试问枚举的真的很少,但实际开发中多用枚举可以大大提高代码优雅度和安全度

基础知识准备

枚举、

Enum 源码分析

通过源码我们来复习下枚举特性

  • 不会看源码的程序员是 码农 (扎心了)

例子

通过例子来复习下,枚举那些方法那些特性吧

枚举基类

  • 它是一个可以排序、可以 序列化
  • jdk1.5才开始支持

values()

知道枚举了,怎么遍历枚举里面所有值了?

用枚举的values()方法

业务场景:当你需要把所有状态( 枚举值 ),带到后端去查询SQL时,你就不要一个个去赋值啦

values()返回的是枚举值的数组,非常实用

枚举方法

  1. 枚举类方法
  2. 枚举值的方法

枚举也就一个类,当然也能有方法

如上面例子就提供了一个通过code找枚举值的方法( 枚举类方法

枚举值的方法( 枚举值的方法

必须通过枚举具体值调用

上面例子的

枚举值一般都需要提供code、desc属性及对应get方法

枚举相等

枚举源码里==和equals是一样的,所有实际开发中==可以用的

枚举是不能被clone的

请见下面源码

阻止默认反序列化

请见下面源码

枚举的 构造方法

参数名称、 序数

你如果想把银联排序第一,只用在枚举类中定义的顺序调整下就好

业务场景 :在讲下实际应用,当前端有下拉框什么类型值等,就可以后端定义相应的枚举类,

一个枚举类对应一个下来框,这样业务属性增加,前端不用改后端只用增加枚举值就好了,扩展维护很方便,顺序也可以灵活控制(完美)

不能反射创建枚举

  • java.lang.reflect下的 Constructor 源码,异常描述很清楚

总结

  • 枚举是在 JVM 层保证完美单例
  • 枚举特性不是特别多,大家好好记住这些
  • java程序员 利用枚举写出高逼格优雅代码可以有

文章来源:智云一二三科技

文章标题:java里枚举非常实用的3个方法,程序员一般都不注意

文章地址:https://www.zhihuclub.com/184339.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图