枚举的定义
当类的对象时有限且固定的,如季节类,它只有春夏秋冬4个对象这种实例有限且固定的类,在 Java 中被称为枚举类;
定义:
1 | public enum ElementType { |
这是java中的语法糖实际上会被编译成这样:
1 | public class ElementType extends Enum<ElementType>{ |
所有的枚举类型都会默认继承 java.lang.Enum ,由于java中不支持多继承,所以枚举类型不能继承别的类,但是可以实现接口。
枚举和其他类一样可以有自己的域和方法:
1 | public enum IndicatorRiskLevel { |
接口中使用枚举作为参数
在spring boot 中 controler层是用枚举作为参数传递,希望传入的是枚举对应的字符串,希望获得的是枚举对象
1 |
|
定义一个 String 转换成Enum的转换器工厂
1 | public class StringToEnumConverterFactory implements ConverterFactory<String, Enum> { |
配置转换器工厂到WebMvc
1 |
|
mybatis中使用枚举
与数据库交互时自动将枚举转与字符串(java.lang.Enum#name)或者数字(java.lang.Enum#ordinal)相互转化
添加enum转化配置
1 | mybatis: |
使用这个org.apache.ibatis.type.EnumOrdinalTypeHandler这个是数字