为什么在这种情况下 enum 比 HashMap 更有用?

And*_*ell 4 java enums class hashmap

这似乎是一个常见问题,但建议框中的任何项目都没有准确解释我想知道的内容。在此链接中,每个人都建议使用枚举类型(我现在已经研究过,但之前从未使用过)。我打算建议简单地使用 HashMap 并阅读答案,看看 Enum (http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html)实际上是否是更好的答案。根据 oracle 上的链接,“只要需要表示一组固定的常量,就应该使用枚举类型。” 所以,确实如此。

我的问题是...为什么?是不是更像是签订了一份不会改变的契约?这是获得某些类功能的更短的方法吗?表现如何?为什么这与仅仅在同一个类中定义常量有什么不同?

谢谢你!

Phi*_*Lho 6

类型安全确实是一个很好的理由:当您将 String 传递给方法时,它可以是任何东西。如果您传递一个枚举,则可以确定它是合法值之一。如果可能性集有限,那么枚举是很好的选择。如果您需要扩展值,HashMap 是很好的选择。