Java:枚举values()和valueOf(String)

前端之家收集整理的这篇文章主要介绍了Java:枚举values()和valueOf(String)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么 javac将value()和valueOf(String)方法添加到正在定义的枚举类型中?将它们添加到Enum类本身不是更好吗?

我的意思是,如果我有一些像这样的枚举

enum FooEnum {ONE,TWO}

javac在编译时将values()和valueOf(String)添加到FooEnum.我觉得有点奇怪.这背后的原因是什么?

是否只是为了确保返回值/值的类型安全性还是还有其他什么?如果只是为了类型安全,那么Generics不会有帮助吗?

解决方法

它们是静态方法 – 如何将它们添加到Enum中?静态方法不是多态的.此外,在您提议的方案中,Enum的实施情况会如何? Enum本身并不知道价值 – 只有具体类型才有.

猜你在找的Java相关文章