Class Reference<T>
java.lang.Object
java.lang.ref.Reference<T>
- Direct Known Subclasses:
PhantomReference, SoftReference, WeakReference
public abstract sealed class Reference<T>
extends Object
permits PhantomReference<T>, SoftReference<T>, WeakReference<T> (not exhaustive)
Abstract class which describes behavior common to all reference objects.
- Since:
- 1.2
-
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Make the referent null.protected Objectclone()This method will always throw CloneNotSupportedException.booleanenqueue()Force the reference object to be enqueued if it has been associated with a queue.get()Return the referent of the reference object.booleanDeprecated.Use ReferenceQueue or Reference.refersTo(null).static voidreachabilityFence(Object ref) Used to keep the referenced object strongly reachable so that it is not reclaimable by garbage collection.final booleanDoes this object refer totarget?Methods declared in class Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitModifier and TypeMethodDescriptionbooleanCompares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.May cause performance issues, deadlocks and hangs.getClass()Answers the unique instance of java.lang.Class which represents the class of the receiver.inthashCode()Answers an integer hash code for the receiver.final voidnotify()Causes one thread which iswaiting on the receiver to be made ready to run.final voidCauses all threads which arewaiting on the receiver to be made ready to run.toString()Answers a string containing a concise, human-readable description of the receiver.final voidwait()Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated bynotifyornotifyAll).final voidwait(long time) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.final voidwait(long time, int frac) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.
-
Method Details
-
clear
public void clear()Make the referent null. This does not force the reference object to be enqueued. -
enqueue
public boolean enqueue()Force the reference object to be enqueued if it has been associated with a queue.- Returns:
- true if Reference is enqueued, false otherwise.
-
get
Return the referent of the reference object.- Returns:
- the referent to which reference refers, or null if object has been cleared.
-
isEnqueued
Deprecated.Use ReferenceQueue or Reference.refersTo(null).Return whether the reference object has been enqueued.- Returns:
- true if Reference has been enqueued, false otherwise.
-
reachabilityFence
Used to keep the referenced object strongly reachable so that it is not reclaimable by garbage collection.- Parameters:
ref- reference of the object.- Since:
- 9
-
clone
This method will always throw CloneNotSupportedException. A clone of this instance will not be returned since a Reference cannot be cloned. Workaround is to create a new Reference.- Overrides:
clonein classObject- Returns:
- Object a shallow copy of this object.
- Throws:
CloneNotSupportedException- always since a Reference cannot be cloned- Since:
- 11
-
refersTo
Does this object refer totarget?- Parameters:
target- the candidate referent- Returns:
- true if this object refers to
target - Since:
- 16
-