이 글은 주로 java.lang.Void 클래스 소스 코드 분석 관련 내용을 소개하고, 소스 코드의 일부 내용을 설명합니다. 필요한 친구는 더 자세히 알아볼 수 있습니다.
ThreadGroup의 소스 코드를 확인해보니 다음과 같은 코드가 있었습니다.
/* * @throws NullPointerException if the parent argument is {@code null} * @throws SecurityException if the current thread cannot create a * thread in the specified thread group. */ private static Void checkParentAccess(ThreadGroup parent) { parent.checkAccess(); return null; }
이 메서드는 부모 액세스 권한을 확인한 후 직접 반환 유형을 반환하는 데 사용됩니다. 원래는 Void 클래스가 void 클래스의 래퍼 클래스인 줄 알았는데, Void 클래스의
소스 코드를 살펴보니 그렇지 않은 것으로 나타났습니다.
/** * The {@code Void} class is an uninstantiable placeholder class to hold a * reference to the {@code Class} object representing the Java keyword * void. * * @author unascribed * @since JDK1.1 */ public final class Void { /** * The {@code Class} object representing the pseudo-type corresponding to * the keyword {@code void}. */ @SuppressWarnings("unchecked") public static final Class<Void> TYPE = (Class<Void>) Class.getPrimitiveClass("void"); /* * The Void class cannot be instantiated. */ private Void() {} }
상단 댓글의 설명은
The {@code Void} class is an uninstantiable placeholder class to hold a * reference to the {@code Class} object representing the Java keyword
이 구절의 의미는 Void 클래스가 다음을 보유하는 인스턴스화할 수 없는 자리 표시자 클래스라는 것입니다. Java 키워드 void를 식별하는 Class 객체에 대한 참조입니다.
생성자 자체는 비공개이며 다음과 같이 표시됩니다.
public final class Void {}
final은 이 클래스가 다른 클래스에서 상속될 수 없음을 나타냅니다.
/* * The Void class cannot be instantiated. */
즉, 이 클래스는 인스턴스화할 수 없습니다.
Void 클래스에는 기능이 없을 수도 있지만 단지 자리 표시자 클래스일 뿐입니다. 즉, Void 클래스 자체는 단지 자리 표시자 클래스일 뿐이며 인스턴스화할 수 없습니다. 이는 주로 제네릭에서 자리 표시자로 사용됩니다.
요약
위 내용은 java.lang.Void 클래스 소스코드 상세 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!