JavaTM Platform
Standard Ed. 6

java.lang.ref
クラス PhantomReference<T>

java.lang.Object
  上位を拡張 java.lang.ref.Reference<T>
      上位を拡張 java.lang.ref.PhantomReference<T>

public class PhantomReference<T>
extends Reference<T>

ファントム参照オブジェクトです。 ファントム参照オブジェクトがキューに入れられるのは、キューに入れておかないとそれらのリファレントが再生される可能性があるとコレクタが判断したときです。ファントム参照オブジェクトは、ほとんどの場合、Java のファイナライズ機構よりも柔軟な方法で、プリモルテムクリーンアップアクションのスケジューリングを行うために使用されます。  

ある時点で、ファントム参照のリファレントが「ファントム到達可能」であるとガベージコレクタが判断した場合、その時点またはそのしばらくあとにガベージコレクタはその参照をキューに入れます。  

再生可能なオブジェクトをそのままにしておくために、ファントム参照のリファレントを取り出すことはできません。ファントム参照の get メソッドは、常に null を返します。  

ソフト参照および弱参照と違って、ファントム参照はそれらがキューに入れられるときにガベージコレクタによって自動的にクリアされません。ファントム参照を介して到達可能なオブジェクトは、すべてのファントム参照がクリアされるか、ファントム参照自身が到達不可能になるまで到達可能です。

導入されたバージョン:
1.2

コンストラクタの概要
PhantomReference(T referent, ReferenceQueue<? super T> q)
          指定されたオブジェクトを参照し、指定されたキューに登録されている新しいファントム参照を作成します。
 
メソッドの概要
 T get()
          参照オブジェクトのリファレントを返します。
 
クラス java.lang.ref.Reference から継承されたメソッド
clear, enqueue, isEnqueued
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

PhantomReference

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

null キューでファントム参照を作成することができますが、作成された参照はまったく役に立ちません。作成された参照の get メソッドは常に null を返します。 また、キューを持たないので、キューに入りません。

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

get

public T get()
参照オブジェクトのリファレントを返します。ファントム参照のリファレントは常にアクセス不可能なため、このメソッドは常に null を返します。

オーバーライド:
クラス Reference<T> 内の get
戻り値:
null

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。