Java에서 Enum을 사용하여 싱글턴 구현
다음에서 설명한 것처럼 Enum을 사용하여 Java에서 싱글턴 패턴을 구현할 수 있다는 점에 주목했습니다. 다음 코드:
public enum MySingleton { INSTANCE; }
그러나 인스턴스화 프로세스와 관련하여 질문이 발생합니다. 전통적인 객체 인스턴스화에는 생성자 호출이 포함되지만 열거형에서는 이것이 명시적으로 수행되지 않습니다.
열거형 인스턴스화
열거형에는 암시적으로 빈 생성자가 있습니다. 이를 명시적으로 만들려면 열거형 정의에 추가하면 됩니다.
public enum MySingleton { INSTANCE; private MySingleton() { System.out.println("Here"); } }
이제 기본 메서드로 클래스를 생성하고 Singleton 열거형을 인스턴스화하는 경우:
public static void main(String[] args) { System.out.println(MySingleton.INSTANCE); }
다음 출력이 표시됩니다.
Here INSTANCE
Enum 필드는 본질적으로 enum 유형의 인스턴스입니다. 열거형 유형이 처음 참조될 때 생성됩니다. 따라서 기본 메서드의 INSTANCE 필드에 액세스하면 MySingleton의 인스턴스화가 트리거되고 해당 생성자가 실행되어 콘솔에 "Here"가 인쇄됩니다.
위 내용은 Java Enum에서 싱글톤 인스턴스는 어떻게 생성됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!