什么是Java的枚举?

What are enums for in Java?

本问题已经有最佳答案,请猛点这里访问。

使用枚举比使用整数有什么好处?我试图在纸牌游戏中代表西服,我认为1,2,3,4就足够了。但是我的老板说我需要用Enums来做。为什么?


Java中的EDOCX1 7提供编译时间检查。因此,如果您在程序中通过100,它将编译,但在运行时失败。一个enum将确保这不会发生。


如果您使用ints,那么适合的5是什么意思?你得处理那个案子。如果一个呼叫者看到int意外地通过2试图制造一个"平局",怎么办?仅使用ints,同一个数字在不同的域中可能代表多个有效的、不同的值。

使用枚举更安全。它只能有您自己的预定义值,并且不同的类型名不允许意外地将有效值从另一个域传递到您的受限值域。


Enum很好,因为它们删除了"神奇数字"——这些数字本身并没有任何意义。通过用实际值替换这些数字,您的代码就更有意义了,并且遵循了更好的设计原则。

此外,枚举还防止将不正确的值传递给函数。如果枚举仅定义Spades, Hearts, ClubsDiamonds,则只能传递枚举的对象。