专业的JAVA编程教程与资源

网站首页 > java教程 正文

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

temp10 2024-10-06 02:04:20 java教程 10 ℃ 0 评论

面试

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

基础知识准备

枚举、

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

Enum源码分析

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

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

例子

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

枚举基类

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

values()

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

用枚举的values()方法

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

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

枚举方法

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

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

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

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

必须通过枚举具体值调用

上面例子的

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

枚举相等

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

枚举是不能被clone的

请见下面源码

阻止默认反序列化

请见下面源码

枚举的构造方法

参数名称、序数

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

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

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

不能反射创建枚举

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

总结

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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表