Module javafx.base
Package javafx.collections

## Class WeakMapChangeListener<K,​V>

- java.lang.Object
- - javafx.collections.WeakMapChangeListener<K,​V>

- Type Parameters:
    `K` - the key element type
    `V` - the value element type
  All Implemented Interfaces:
    `WeakListener`, `MapChangeListener<K,​V>`

      public final class WeakMapChangeListener<K,​V>
      extends Object
      implements MapChangeListener<K,​V>, WeakListener

  A `WeakMapChangeListener` can be used, if an `ObservableMap` 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.

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

  Note: You have to keep a reference to the `MapChangeListener`, 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:
    `MapChangeListener`, `ObservableMap`, `WeakListener`

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface javafx.collections.MapChangeListener

      `MapChangeListener.Change<K,​V>`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `WeakMapChangeListener​(MapChangeListener<K,​V> listener)` | The constructor of `WeakMapChangeListener`.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `onChanged​(MapChangeListener.Change<? extends K,​? extends V> change)` | Called after a change has been made to an ObservableMap.
    `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

    - #### WeakMapChangeListener

          public WeakMapChangeListener​(MapChangeListener<K,​V> listener)

      The constructor of `WeakMapChangeListener`.
      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​(MapChangeListener.Change<? extends K,​? extends V> change)

      Called after a change has been made to an ObservableMap. This method is called on every elementary change (put/remove) once. This means, complex changes like keySet().removeAll(Collection) or clear() may result in more than one call of onChanged method.
      Specified by:
        `onChanged` in interface `MapChangeListener<K,​V>`
      Parameters:
        `change` - the change that was made