ホームページ  >  記事  >  Java  >  java.lang.Voidクラスのソースコードの詳細な紹介

java.lang.Voidクラスのソースコードの詳細な紹介

黄舟
黄舟オリジナル
2017-10-11 10:01:091466ブラウズ

この記事では、主に 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;
  }

このメソッドは、親のアクセス許可をチェックするために使用され、戻り値の型は直接 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。