public class PhantomReference<T> extends Reference<T>
ある時点でオブジェクトが「ファントム到達可能」であるとガベージ・コレクタが判断したとします。 その時点で、そのオブジェクトへのすべてのファントム参照と、そのオブジェクトに到達可能な他のファントム到達可能オブジェクトへのすべてのファントム参照を原子的にクリアします。 同時に、または後で、参照キューに登録されたそれらの新たにクリアされたファントム参照をエンキューします。
再生可能なオブジェクトをそのままにしておくために、ファントム参照のリファレントを取り出すことはできません。ファントム参照のget
メソッドは、常にnull
を返します。
コンストラクタ | 説明 |
---|---|
PhantomReference(T referent, ReferenceQueue<? super T> q) |
指定されたオブジェクトを参照し、指定されたキューに登録されている新しいファントム参照を作成します。
|
public PhantomReference(T referent, ReferenceQueue<? super T> q)
nullキューを使用してファントム参照を作成することは可能ですが、そのような参照はまったく役に立ちません: そのgetメソッドは、常にnull
を返し、キューがないため、エンキューされません。
referent
- 新しいファントム参照が参照するオブジェクトq
- 参照が登録されるキュー。登録が必要ない場合はnull バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。