Module javafx.base

Class WeakSetChangeListener<E>

  • Type Parameters:
    E - The type of the observed value
    All Implemented Interfaces:
    WeakListener, SetChangeListener<E>


    public final class WeakSetChangeListener<E>
    extends Object
    implements SetChangeListener<E>, WeakListener
    A WeakSetChangeListener can be used, if an ObservableSet should only maintain a weak reference to the listener. This helps to avoid memory leaks, that can occur if observers are not unregistered from observed objects after use.

    WeakSetChangeListener are created by passing in the original SetChangeListener. The WeakSetChangeListener should then be registered to listen for changes of the observed object.

    Note: You have to keep a reference to the SetChangeListener, that was passed in as long as it is in use, otherwise it will be garbage collected to soon.

    Since:
    JavaFX 2.1
    See Also:
    SetChangeListener, ObservableSet, WeakListener
    • Constructor Detail

      • WeakSetChangeListener

        public WeakSetChangeListener​(SetChangeListener<E> listener)
        The constructor of WeakSetChangeListener.
        Parameters:
        listener - The original listener that should be notified
    • Method Detail

      • wasGarbageCollected

        public boolean wasGarbageCollected​()
        Returns true if the linked listener was garbage-collected. In this case, the listener can be removed from the observable.
        Specified by:
        wasGarbageCollected in interface WeakListener
        Returns:
        true if the linked listener was garbage-collected.
      • onChanged

        public void onChanged​(SetChangeListener.Change<? extends E> change)
        Called after a change has been made to an ObservableSet. This method is called on every elementary change (add/remove) once. This means, complex changes like removeAll(Collection) or clear() may result in more than one call of onChanged method.
        Specified by:
        onChanged in interface SetChangeListener<E>
        Parameters:
        change - the change that was made