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 Summary

  Constructors
  Constructor | Description
  --- | ---
  `WeakInvalidationListener​(InvalidationListener listener)` | The constructor of `WeakInvalidationListener`.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `void` | `invalidated​(Observable observable)` | This method needs to be provided by an implementation of `InvalidationListener`.
  `boolean` | `wasGarbageCollected()` | Returns `true` if the linked listener was garbage-collected.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## 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