我使用枚举来制作一些常量:
enum ids {OPEN, CLOSE};
Run Code Online (Sandbox Code Playgroud)
OPEN值为零,但我希望它为100.是否可能?
将枚举保存到数据库的最佳方法是什么?
我知道Java提供name()和valueOf()方法来枚举值转换为字符串和背部.但是有没有其他(灵活的)选项来存储这些值?
有没有一种聪明的方法可以将枚举变成唯一的数字(ordinal()使用起来不安全)?
更新:
感谢所有令人敬畏和快速的答案!这是我怀疑的.
但请注意"工具包"; 这是一种方式.问题是我必须为我创建的每个Enum类型添加相同的方法.这是很多重复的代码,目前,Java不支持任何解决方案(Java枚举不能扩展其他类).
因此,在C++/C#中,您可以创建标记枚举以保存多个值,并且在数据库中存储单个有意义的整数当然是微不足道的.
在Java中你有EnumSets,它似乎是一种在内存中传递枚举的好方法,但是你如何将组合的EnumSet输出到一个整数来存储呢?还有另一种方法来解决这个问题吗?