기본적으로 enum 사용법을 알고 있는데, 다시 소스로 돌아가고 싶습니다. (본질에 대해 논의)
문서에서 발췌한 독단적인 답변은 거부하세요(시간이 중요합니다)
enum에 대한 깊은 이해를 찾고 있습니다(적어도 실제 제작 환경에서는 많은 코드를 작성했습니다)!
참고: 저는 프로그래밍 초보자가 아닙니다. 일부 기본 개념에는 대중 과학이 필요하지 않습니다
자바에서 논의의 대상은 enum입니다(실제로 enum은 개념입니다)
구체적으로는 enum
高洛峰2017-05-17 10:03:51
유형의 안전성을 보장하기 위해 주문 상태, 문서 유형 등과 같은 유형 상수를 정의하는 대신 사용할 수 있습니다.
예를 들어 일반 String 클래스를 사용하여 주문 상태를 나타내는 경우 호출자는 다음과 같은 문자열을 전달할 수 있습니다. 은(는) 수신자에게 주문 상태 범위 내에 있지 않습니다. 이런 오류는 컴파일 단계에서 찾을 수 없습니다
Java 열거형 클래스는 본질적으로 다중 인스턴스 패턴의 구현이며, 싱글톤 패턴은 다중 인스턴스 패턴의 특별한 경우입니다
Enumeration 클래스는 상속될 수 없습니다. 예를 들어 enumA 확장 enumB는 사용할 수 없습니다.
내부 유형이 순서대로 포함된 열거형 클래스는 Comparable 인터페이스를 구현합니다.
漂亮男人2017-05-17 10:03:51
당신의 상황이 무서워서 제 개인적인 생각만 말씀드리겠습니다
enum은 일부 액세스 가능 및 공개 상수를 포함하는 특수 클래스로 간주될 수 있습니다. 실제로는 액세스 가능하고 공개 상수로서 클래스 로딩 프로세스 중에 상수 풀로 구문 분석되었습니다. 사용자가 상수를 사용할 때 상수의 의미를 더 쉽게 표시할 수 있도록 합니다. 동시에 특정 유형의 모든 상수를 반복하고 스위치 문 등에 사용하여 상수 구성을 용이하게 합니다.
習慣沉默2017-05-17 10:03:51
이 질문은 너무 광범위하고 대답하기 어렵습니다.
enum은 기본적으로 java.lang.Enum을 상속하는 클래스이며 싱글톤 및 입력이 제한되어야 하는 경우에 사용할 수 있습니다
PHP中文网2017-05-17 10:03:51
먼저 개인적인 피상적이고 주관적인 이해에 대해 이야기하고 몇 가지 아이디어를 제공하겠습니다.
제 생각에 enum의 목적은 다음과 같습니다.
상수 관리 수단을 제공하세요.
네임스페이스.
ringa_lee2017-05-17 10:03:51
enum의 존재 자체는 상수의 가독성 문제를 해결하기 위한 것입니다. enum이 없기 전에는 상태를 표시하기 위해 1, 2 등의 가독성이 좋지 않은 경우가 많았습니다. 긴 문장을 작성하기 위해 이 일련의 문제를 해결하기 위해 jdk5에 이 함수가 추가되었습니다. 본질은 클래스이지만, 열거형을 생성할 때 자동으로 value(), ordinal() 및 기타 메서드를 생성하고, 상수가 나타날 시나리오를 다루는 스위치 문을 지원하므로 상수를 직접 정의하는 것보다 사용하기가 더 편리합니다. .