Зачем использовать константы вместо перечислений? - PullRequest
6 голосов
/ 08 августа 2011

Я видел во многих и многих библиотеках Java использование множества констант, в которых можно легко использовать перечисления.Даже в Swing есть много кода, который использует константы вместо перечислений.Почему?

Каковы недостатки использования перечислений?

Ответы [ 4 ]

12 голосов
/ 08 августа 2011

Поскольку перечисления были введены в Java 5, а эти библиотеки были написаны задолго до этого.Рефакторинг их сломал бы миллиард существующих приложений.

8 голосов
/ 08 августа 2011
  • Существует много документации по использованию решений pre-enum.
  • Многие разработчики используют Java впервые и имеют опыт работы с другим языком, где использование констант является нормой.
  • Многие библиотеки хотели поддерживать Java 1.4 и более ранние версии. Java 1.3 и 1.4 все еще используются сегодня.
  • Рабочий код не был переписан только для использования перечислений.

Я все еще говорю людям использовать enum для Singleton, хотя он существует уже 7 лет. : P

Когда следует использовать константы вместо enum? Если у вас есть много связанных, но не связанных напрямую констант.

public static final int BUFFER_SIZE = 32 * 1024;
public static final String ERROR = "Error: ";
public static final char TAB = 't';
1 голос
/ 08 августа 2011

Перечисления в Java введены в Java 5, их не было раньше, и Enum эквивалентен классу в Java.

0 голосов
/ 08 августа 2011

До Java 1.5 в Java не было enum, и самым простым способом реализации шаблона enum было использование константных выражений. Вы можете прочитать больше в разделе Учебное пособие по Java для перечислений .

...