【发布时间】:2011-10-22 04:11:26
【问题描述】:
我已经在很多 Java 库中看到使用了很多可以轻松使用枚举的常量。即使在 Swing 中,也有很多代码使用常量而不是枚举。为什么?
使用枚举有什么缺点?
【问题讨论】:
我已经在很多 Java 库中看到使用了很多可以轻松使用枚举的常量。即使在 Swing 中,也有很多代码使用常量而不是枚举。为什么?
使用枚举有什么缺点?
【问题讨论】:
因为枚举是在 Java 5 中引入的,而这些库是很久以前编写的。重构它们会破坏大量现有应用程序。
【讨论】:
我发现我仍然告诉人们使用枚举作为单例,即使它已经存在 7 年了。 :P
什么时候会使用使用常量而不是枚举?当您有许多关联但不直接相关的常量时。
public static final int BUFFER_SIZE = 32 * 1024;
public static final String ERROR = "Error: ";
public static final char TAB = 't';
【讨论】:
Java 中的枚举是在 Java 5 中引入的,以前没有,Enum 相当于 java 中的一个类。
【讨论】:
在 Java 1.5 之前,Java 中没有 enum,实现枚举模式最直接的方法是使用 const int。你可以在Java Tutorial section for enums阅读更多内容。
【讨论】: