2014-07-17 5 views
-2

Я смущаюсь относительно Enum.В чем разница между Enum и Constant Java class?

Где и как использовать Enum?

Если я буду использовать Enum вместо constant, то какой может быть польза?

Не мог бы кто-нибудь объяснить мне?

+4

Что «постоянный класс»? – gexicide

+0

public ApplicationConstant {private static final String male = "MALE"; } – Surya

+0

Возможный дубликат [В чем преимущество переименования Java в сравнении с классом с публичными статическими конечными полями?] (Http://stackoverflow.com/questions/9969690/whats-the-advantage-of-a-java-enum- versus-a-class-with-public-static-final-fiel) или [this] (Static String constants VS enum в Java 5+) или [this] (https://stackoverflow.com/questions/2229297/java- перечисления-против-статических-констант). – awksp

ответ

0

Основным преимуществом является безопасность типов. С помощью набора констант можно использовать любое значение одного и того же внутреннего типа, вводя ошибки. С перечислением могут использоваться только применимые значения.

+0

Большое спасибо за ваши анны. – Surya

1

Класс Enum используется для указания диапазона констант, который будет часто использоваться в приложении.

От http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html:

Вы должны использовать типы перечислений в любое время вы должны представлять фиксированный набор констант. Общие примеры включают направления компаса (значения СЕВЕРНОГО, ЮГО-ВОСТОЧНОГО и ЗАПАДНОГО) и дни недели.

Постоянный класс (при условии, что это то, о чем вы говорите), действительно задан для одного твердого объекта, который вы не изменили бы. Технически класс Enum является постоянным классом с большим количеством определений, но преимущество класса Enum составляет some pre-defined functions, которое вам нужно будет определить в вашем собственном постоянном классе. Тем не менее, вы должны также отметить, что это может быть излишним для небольших, одноточечных примеров.

Кроме того, классы Enum являются безопасными по типу, тогда как статические поля - нет. Теперь возможна проверка времени компиляции по сравнению с потенциальными возможными ошибками во время выполнения с постоянным классом. Это также улучшает читаемость, потому что вместо ошибок, когда индекс списка констант недоступен. Все это хорошо объяснено в this post, по текущему лучшему ответу.

+0

Предположим, что такое свойство компаса я буду использовать внутри константы. Тогда почему я должен использовать Enum. – Surya

+0

Спасибо, я получил мой ans.now, я очищен. – Surya

+1

ЕСЛИ вы понятны, тогда вы должны принять и/или отменить ответы –

0

С точки зрения Java 8.0 ключевое слово "константа" не существует.

Если вы имеете в виду «сопзЬ»: Это ключевое слово не находится в известных ключевых слов в Java (от начала до сегодняшнего дня - 8.0), , но он не имеет никакой пользы и любой компилятор не должен компилировать, если найти в этом ключевое слово.

Перечисления: Используйте их, когда у вас есть конкретные логические значения и не хотят, чтобы обрабатывать их в строки, как:

public enum AcceptableColours { 
    BLACK, 
    WHITE, 
    GREY 
} 

Это намного безопаснее во время разработки, чтобы соответствовать перечисление значений

AcceptableColours currentColour = object.getColour; 
if (currentColour == acceptableColours.BLACK) { 
    // do something 
} else if (currentColour == acceptableColours.WHITE) { 
    // do something different 
} 

, чем соответствие строке значения

AcceptableColours currentColor = object.getColour; 
if (currentColor.equals("black")) { 
    // do something 
} else if (currentColor.equals("white")) { 
    // do something different 
} 

... представьте себе огромные приложения с гораздо большим количеством изменений в значениях перечисления (например, банковское программное обеспечение, программное обеспечение для страховки ...), где гораздо проще пропустить некоторые строковые значения, и voilà, счастливая отладка ...

Смежные вопросы