to top
Android APIs
public class

PhantomReference

extends Reference<T>
java.lang.Object
   ↳ java.lang.ref.Reference<T>
     ↳ java.lang.ref.PhantomReference<T>

Class Overview

Implements a phantom reference, which is the weakest of the three types of references. Once the garbage collector decides that an object obj is phantom-reachable, it is being enqueued on the corresponding queue, but its referent is not cleared. That is, the reference queue of the phantom reference must explicitly be processed by some application code. As a consequence, a phantom reference that is not registered with any reference queue does not make any sense.

Phantom references are useful for implementing cleanup operations that are necessary before an object gets garbage-collected. They are sometimes more flexible than the finalize() method.

Summary

Public Constructors
PhantomReference(T r, ReferenceQueue<? super T> q)
Constructs a new phantom reference and registers it with the given reference queue.
Public Methods
T get()
Returns null.
[Expand]
Inherited Methods
From class java.lang.ref.Reference
From class java.lang.Object

Public Constructors

public PhantomReference (T r, ReferenceQueue<? super T> q)

Added in API level 1

Constructs a new phantom reference and registers it with the given reference queue. The reference queue may be null, but this case does not make any sense, since the reference will never be enqueued, and the get() method always returns null.

Parameters
r the referent to track
q the queue to register the phantom reference object with

Public Methods

public T get ()

Added in API level 1

Returns null. The referent of a phantom reference is not accessible.

Returns
  • null (always)