Java的int类型转枚举类型
在这里我就以我自己的亲身经历为主了。
效果是数据库中存储的int类型数据,在网页上展示相对应的等级,结果发现网页上的数据跟数据库中的数据不符合,然后就去追项目代码,在一个实体类中发现对应的属性类型是枚举类型,而数据库中存储的时int类型,然后就去网上查找资料。
发现:当int类型转为枚举类型时,会在转换的过程中调用枚举的values()方法,得到枚举数组(按照枚举数据顺序存放到数组中),然后以数据库中的数据作为数组下标获取枚举信息并赋值给枚举中的属性,所以造成实际结果与预想结果得到不一致。
总结:
int i=0;
enum data=enum.values()[i];