T
- The type of the observed valuepublic final class WeakChangeListener<T> extends java.lang.Object implements ChangeListener<T>
WeakChangeListener
can be used if an ObservableValue
should only maintain a weak reference to the listener. This helps to avoid
memory leaks which can occur if observers are not unregistered from observed
objects after use.
WeakChangeListener
instances are created by passing in the original
ChangeListener
. The WeakChangeListener
should then be
registered to listen for changes of the observed object.
Note: You have to keep a reference to the ChangeListener
that
was passed in for as long as it is in use, otherwise it will be garbage collected
too soon.
ChangeListener
,
ObservableValue
Modifier and Type | Field and Description |
---|---|
private java.lang.ref.WeakReference<ChangeListener<T>> |
ref |
Constructor and Description |
---|
WeakChangeListener(ChangeListener<T> listener)
The constructor of
WeakChangeListener . |
Modifier and Type | Method and Description |
---|---|
void |
changed(ObservableValue<? extends T> observable,
T oldValue,
T newValue)
This method needs to be provided by an implementation of
ChangeListener . |
boolean |
wasGarbageCollected() |
private final java.lang.ref.WeakReference<ChangeListener<T>> ref
public WeakChangeListener(ChangeListener<T> listener)
WeakChangeListener
.listener
- The original listener that should be notifiedpublic boolean wasGarbageCollected()
public void changed(ObservableValue<? extends T> observable, T oldValue, T newValue)
ChangeListener
. It is called if the value of an
ObservableValue
changes.
In general, it is considered bad practice to modify the observed value in this method.
changed
in interface ChangeListener<T>
observable
- The ObservableValue
which value changedoldValue
- The old valuenewValue
- The new value