>  기사  >  Java  >  java.lang.Void 클래스 소스코드 상세 소개

java.lang.Void 클래스 소스코드 상세 소개

黄舟
黄舟원래의
2017-10-11 10:01:091418검색

이 글은 주로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.