Java:如何在枚举中使用构造函数重载?
我正在使用 Java 中的枚举。正如我所看到的,可以重载枚举构造函数。我的问题是,在这种情况下,是否有可能从构造函数重载中受益,因为据我所知,既不可能自己调用它,也不可能强制编译器调用您想要调用的特定构造函数?
感谢您花时间向我澄清这些内容,并希望这对可能有相同问题的其他人也有用。
I am working with enumerations in Java. As I can see, it is possible to overload an enumeration constructor. My question is it possible at all to benefit from constructor overloading in this context given that as far as I understand it is possible neither to call it by yourself no to force the compiler to call a particular one that you would like to call?
Appreciate the time your take to clarify that stuff to me and hope it would also be useful for others who might have the same question in mind.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您确实会在设置枚举值时调用它。例如:
我过去曾在各种项目中使用过这种能力。枚举是 Java 最好的功能之一 - 当然,这也是我在 C# 中工作时从 Java 中怀念的为数不多的功能之一。 (我确信它们可以更巧妙地实现,但是......)
You do call it - when setting the enum values. For example:
I've used this ability for various projects in the past. Enums are one of Java's nicest features - certainly one of the few things I miss from Java when working in C#. (They could be implemented even more neatly, I'm sure, but...)
更完整的例子:
Even more complete example:
是的,您可以使用构造函数重载:
Yes, you can use constructor overloading:
当您定义枚举“常量”时,您可以使用构造函数
You use the constructor when you define your enum "constants"
有没有办法使用构造函数来从其等效的整数值中获取枚举?目前我有这样的代码,但是这个长的 switch 语句不是很简洁。
Is there a way to use constructor in order to get enum from it's equivalent integer value? Currently I have such code, but this long switch statement is not very concise.