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

    All Methods Instance Methods Concrete Methods
    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 Detail

    - #### WeakInvalidationListener

          public WeakInvalidationListener​(InvalidationListener listener)

      The constructor of `WeakInvalidationListener`.
      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.

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