T.M. SoftStudio

feci quod potui, faciant meliora potentes

Класс WeakChangeListener<T>

Класс WeakChangeListener<T> реализует интерфейсы ChangeListener<T> и WeakListener и обеспечивает слабую связь объекта ObservableValue со слушателем ChangeListener.

При присоединении слушателя, обработчика событий, ChangeListener методом addListener(), объект ObservableValue сохраняет устойчивую ссылку на слушателя, предотвращающую его удаление сборщиком мусора, даже если слушатель уже не используется. Удаление такого слушателя требует применения метода removeListener(). Использование же класса WeakChangeListener<T> решает эту проблему сборки мусора.

Класс WeakChangeListener<T> имеет конструктор public WeakChangeListener(ChangeListener<T> listener) и для обработки событий изменения значения ObservableValue предлагает метод:

public void changed(ObservableValue<? extends T> observable, T oldValue, T newValue).

Метод public boolean wasGarbageCollected() класса WeakChangeListener<T> возвращает true, если связанный слушатель ChangeListener был собран сборщиком мусора.