モジュール java.base
パッケージ java.lang.ref

クラスPhantomReference<T>

java.lang.Object
java.lang.ref.Reference<T>
java.lang.ref.PhantomReference<T>
型パラメータ:
T - 紹介のタイプ

public non-sealed class PhantomReference<T> extends Reference<T>
ファントム参照オブジェクトです。ファントム参照オブジェクトがキューに入れられるのは、キューに入れておかないとそれらのリファレントが再生される可能性があるとコレクタが判断したときです。 ファントム参照は、モーテム後のクリーンアップ・アクションのスケジュールに最もよく使用されます。

ある時点でオブジェクトが「ファントム到達可能」であるとガベージ・コレクタが判断したとします。 At that time it will atomically clear all phantom references to that object and all phantom references to any other phantom-reachable objects from which that object is reachable.この時点で、そのオブジェクトへのすべてのファントム参照と、そのオブジェクトが到達可能な他のファントム到達可能オブジェクトへのすべてのファントム参照を原子的にクリアします。 同時に、または後で、参照キューに登録されている新しくクリアされたファントム参照をエンキューします。

再生可能なオブジェクトをそのままにしておくために、ファントム参照のリファレントを取り出すことはできません。ファントム参照のgetメソッドは、常にnullを返します。 refersToメソッドを使用して、一部のオブジェクトがファントム参照のリサーチを受けるかどうかをテストできます。

導入されたバージョン:
1.2
  • コンストラクタの詳細

    • PhantomReference

      public PhantomReference(T referent, ReferenceQueue<? super T> q)
      指定されたオブジェクトを参照し、指定されたキューに登録されている新しいファントム参照を作成します。

      nullキューを使用してファントム参照を作成できます。 このような参照はエンキューされません。

      パラメータ:
      referent - 新しいファントム参照が参照するオブジェクト
      q - 参照が登録されるキュー、または登録が不要な場合はnull
  • メソッドの詳細

    • get

      public T get()
      参照オブジェクトのリファレントを返します。 ファントム参照のリファレントは常にアクセス不可能なため、このメソッドは常にnullを返します。
      オーバーライド:
      get、クラスReference<T>
      戻り値:
      null
      関連項目: