hashmap – 使用数据库中的值填充枚举

前端之家收集整理的这篇文章主要介绍了hashmap – 使用数据库中的值填充枚举前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一张表映射String-> Integer的表。

我不想静态创建枚举,而是要使用数据库中的值填充枚举。这可能吗 ?

所以,而不是静静地分析:

public enum Size { SMALL(0),MEDIUM(1),LARGE(2),SUPERSIZE(3) };

我想自动创建这个枚举,因为数字{0,1,2,3}基本上是随机的(因为它们是由数据库的AUTOINCREMENT列自动生成的)。

解决方法

枚举在编译时总是固定的。您唯一可以做到这一点就是生成相关的字节码。

话虽如此,你应该可以弄清楚你真正感兴趣的枚举的哪些方面,大概你不想使用switch语句,这意味着静态代码,你不会静态地知道值…同样代码中的任何其他参考。

如果你真的只想要一个从String到Integer的地图,你可以使用Map< String,Integer>你在执行时填充,你完成了。如果你想要EnumSet的功能,他们会以相同的效率来复制一些棘手的东西,但是通过一些努力可能是可行的。

所以,在进一步考虑实施之前,我建议你制定出实际要求。

(编辑:我一直假设这个枚举是完全动态的,即你不知道名字,甚至不知道有多少值。如果一组名称是固定的,你只需要从数据库获取ID这是一个非常不同的事情 – 见Andreas’ answer.)

猜你在找的MsSQL相关文章