使用枚举比使用整型有什么优势?我在尝试表示纸牌游戏中的花色,我认为1 2 3 4就足够了。但是我的老板说我需要用枚举来做。为什么?
枚举很好,因为它们删除了"幻数"——这些数字本身没有任何实际意义。通过将这些数字替换为实际值,您的代码更有意义,并遵循更好的设计原则。
同时,枚举可以防止不正确的值被传递给函数。如果你的enum只定义了Spades, Hearts, Clubs
和Diamonds
,那么只能传递该enum的对象。
如果您使用int
s,那么套装5
意味着什么?你得处理那个案子。如果调用者看到int
并意外传递2
试图创建"平局"怎么办?仅使用 int
s,相同的数字可以在不同的域中表示多个有效的、不同的值。
使用枚举类型更安全。它只能具有您自己的预定义值,并且不同的类型名称禁止意外地将有效值从另一个域传递到受限制的值域。
java中的enum
提供了编译时检查。因此,如果在程序中传递100
,它将编译,但在运行时失败。enum
将确保不会发生这种情况。