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

Mic*_*ker 6 java enums constants

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

使用枚举有什么缺点?

JB *_*zet 12

因为枚举是在Java 5中引入的,并且这些库很久以前就已经编写过了.重构它们将破坏现有应用程序的数量.


Pet*_*rey 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';
Run Code Online (Sandbox Code Playgroud)

  • @AlexFedulov好点.我更喜欢无国籍的单身人士.你应该避免创造有状态的单身人士. (2认同)