为什么使用常量而不是枚举?

时间:2011-08-08 07:18:11

标签: java enums constants

我已经在很多Java库中看到了很多常量的使用,其中很容易使用枚举。即使在Swing中,也有很多代码使用常量而不是枚举。为什么呢?

使用枚举有什么缺点?

4 个答案:

答案 0 :(得分:12)

因为枚举是在Java 5中引入的,所以这些库早就写好了。重构它们将破坏现有应用程序的数量。

答案 1 :(得分:8)

  • 有许多使用pre-enum解决方案的文档。
  • 有很多开发人员第一次使用Java,并且有使用常量的另一种语言的经验。
  • 许多图书馆都希望支持Java 1.4及更早版本。 Java 1.3&今天仍然使用1.4。
  • 尚未重写工作代码只是为了使用枚举。

我发现我仍然告诉人们使用enum作为Singleton,即使它已经存在了7年了。 :P

何时使用常量而不是枚举?当你有许多相关但不直接相关的常数时。

public static final int BUFFER_SIZE = 32 * 1024;
public static final String ERROR = "Error: ";
public static final char TAB = 't';

答案 2 :(得分:1)

Java中的枚举是在Java 5中引入的,以前没有这些,而且Enum相当于java中的一个类。

答案 3 :(得分:0)

在Java 1.5之前,Java中没有enum,实现枚举模式最直接的方法是使用const int。您可以在Java Tutorial section for enums中阅读更多内容。