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 Details

### WeakMapChangeListener

public WeakMapChangeListener(MapChangeListener<K,V> listener)
The constructor of `WeakMapChangeListener`.

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.

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