首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么使用枚举而不是静态常量的类?

为什么使用枚举而不是静态常量的类?
EN

Stack Overflow用户
提问于 2011-09-08 10:28:40
回答 2查看 449关注 0票数 0

可能重复: 枚举:为什么?什么时候?

我已经在堆栈溢出上搜索过这样的问题,但是没有使用枚举的主要好处。有一段时间,我需要一些全局值,我知道枚举是更好的实践,但我最终无法理解为什么?

EN

回答 2

Stack Overflow用户

发布于 2011-09-08 10:34:10

Java 列出枚举类型使用整数常量不如使用枚举的几种方法。。我引述如下:

在以前的版本中,表示枚举类型的标准方法是int Enum模式:

代码语言:javascript
运行
复制
// int Enum Pattern - has severe problems!
public static final int SEASON_WINTER = 0;
public static final int SEASON_SPRING = 1;
public static final int SEASON_SUMMER = 2;
public static final int SEASON_FALL   = 3;

这种模式存在许多问题,例如:

  • Not typesafe --因为一个季节只是一个int,所以您可以在需要某个季节的任何其他int值中传递,或者将两个季节相加(这是没有意义的)。
  • No命名空间-您必须用字符串(在本例中为SEASON_)前缀int枚举的常量,以避免与其他int枚举类型发生冲突。
  • 脆性-因为int枚举是编译时常量,所以它们被编译成使用它们的客户端。如果在两个现有常量之间添加新常量或更改顺序,则必须重新编译客户端。如果他们不是,他们仍然会运行,但他们的行为将是未知的。
  • 打印的值是信息不足的--因为它们只是it,如果您打印出一个数字,它不会告诉您它代表什么,甚至不知道它是什么类型。

终止报价

票数 1
EN

Stack Overflow用户

发布于 2011-09-08 10:37:40

页面模板/enums.php可以在C++、Java或PHP中生成类型文件枚举的代码。它用的是静电。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7346574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档