java枚举

Posted weishenme

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java枚举相关的知识,希望对你有一定的参考价值。

枚举是JDK1.5版本新增的特性(泛型、For-each等如今被广泛应用的特性也是由JDK1.5时所新增的),另外到了JDK1.6后switch语句支持枚举类型。

 

 

 

 

枚举的好处以及与常量类的区别


  1)枚举型可以直接与数据库打交道,我通常使用varchar类型存储,对应的是枚举的常量名。(数据库中好像也有枚举类型,不过也没用过)

  2) switch语句支持枚举型,当switch使用int、String类型时,由于值的不稳定性往往会有越界的现象,对于这个的处理往往只能通过if条件筛选以及default模块来处理。而使用枚举型后,在编译期间限定类型,不允许发生越界的情况

  3) 当你使用常量类时,往往得通过equals去判断两者是否相等,使用枚举的话由于常量值地址唯一,可以用==直接对比,性能会有提高

  4) 常量类编译时,是直接把常量的值编译到类的二进制代码里,常量的值在升级中变化后,需要重新编译引用常量的类,因为里面存的是旧值。枚举类编译时,没有把常量值编译到代码里,即使常量的值发生变化,也不会影响引用常量的类。

  5)枚举类编译后默认为final class,不允许继承可防止被子类修改。常量类可被继承修改、增加字段等,容易导致父类的不兼容。

 

*常量的定义在开发中是必不可少的,虽然无论是通过常量类定义常量还是枚举定义常量都可以满足常量定义的需求。

 

枚举常用方法

1.values()获取存储枚举中所有常量实例的数组。常配合foreach完成遍历

2.构造方法,枚举的构造方法只能用private修饰符修饰

3.valueOf()通过常量名获取对应的枚举实例。

 

 

(内容参考与百度网络)

以上是关于java枚举的主要内容,如果未能解决你的问题,请参考以下文章

java枚举类型

java中的枚举类型指的是啥啊?

java里啥情况用枚举啊

java怎么声明枚举类型

java枚举类的几点疑惑

java枚举