Module javafx.base
Package javafx.beans

Class WeakInvalidationListener

java.lang.Object
javafx.beans.WeakInvalidationListener
All Implemented Interfaces:
InvalidationListener, WeakListener

public final class WeakInvalidationListener
extends Object
implements InvalidationListener, WeakListener
A WeakInvalidationListener can be used if an Observable 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.

A WeakInvalidationListener is created by passing in the original InvalidationListener. The WeakInvalidationListener should then be registered to listen for changes of the observed object.

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

Since:
JavaFX 2.0
See Also:
InvalidationListener, Observable
  • Constructor Details

    • WeakInvalidationListener

      public WeakInvalidationListener​(InvalidationListener listener)
      The constructor of WeakInvalidationListener.
      Parameters:
      listener - The original listener that should be notified
  • Method Details

    • 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.
    • invalidated

      public void invalidated​(Observable observable)
      This method needs to be provided by an implementation of InvalidationListener. It is called if an Observable becomes invalid.

      In general, it is considered bad practice to modify the observed value in this method.

      Specified by:
      invalidated in interface InvalidationListener
      Parameters:
      observable - The Observable that became invalid