Spec-Zone .ru
спецификации, руководства, описания, API
|
T
- Тип обернутого значения.public interface ObservableValue<T> extends Observable
ObservableValue
объект, который обертывает значение и позволяет наблюдать значение для изменений. Вообще этот интерфейс не должен быть реализован непосредственно, но один из его подинтерфейсов ( ObservableBooleanValue
и т.д.). Значение ObservableValue
с можно требовать getValue()
.
Реализация ObservableValue
может поддерживать отложенные вычисления, что означает, что значение не было сразу повторно вычислено после изменений, но лениво в следующий раз требуют значение. Вся привязка и свойства в этой библиотеке поддерживают отложенные вычисления.
ObservableValue
генерирует два типа событий: события изменения и события аннулирования. Событие изменения указывает, что значение изменилось. Событие аннулирования сгенерировано, если текущая стоимость не допустима еще. Это различие становится важным, если ObservableValue
поддерживает отложенные вычисления, потому что для лениво оцененного значения каждый не знает, изменилось ли недопустимое значение действительно, пока это не повторно вычисляется. Поэтому генерирование событий изменения требует нетерпеливой оценки, в то время как события аннулирования могут быть сгенерированы для нетерпеливых и ленивых реализаций.
Реализации этого class должны стремиться генерировать как немного событий насколько возможно, чтобы избежать тратить впустую слишком много времени в обработчиках событий. Реализации в этой библиотеке отмечают себя как недопустимых, когда первое событие аннулирования имеет место. Они не генерируют больше события аннулирования, пока их значение не повторно вычисляется и допустимо снова.
Два типа слушателей могут быть присоединены ObservableValue
: InvalidationListener
слушать события аннулирования и ChangeListener
слушать события изменения.
Важное примечание: присоединение a ChangeListener
осуществляет нетерпеливое вычисление даже если реализация ObservableValue
поддерживает отложенные вычисления.
Модификатор и Тип | Метод и Описание |
---|---|
void |
addListener(ChangeListener<? super T> listener)
Добавляет a
ChangeListener который будет уведомлен всякий раз, когда значение ObservableValue изменения. |
T |
getValue()
Возвращает текущую стоимость этого
ObservableValue |
void |
removeListener(ChangeListener<? super T> listener)
Удаляет данного слушателя из списка слушателей, которые уведомляются всякий раз, когда значение
ObservableValue изменения. |
addListener, removeListener
void addListener(ChangeListener<? super T> listener)
ChangeListener
который будет уведомлен всякий раз, когда значение ObservableValue
изменения. Если тот же самый слушатель будет добавлен не раз, то это будет уведомлено не раз. Таким образом, никакая проверка не осуществляется, чтобы гарантировать уникальность. Отметьте что фактическое то же самое ChangeListener
экземпляр может быть безопасно зарегистрирован для различного ObservableValues
.
ObservableValue
хранит ссылку strong на слушателя, который будет препятствовать тому, чтобы слушатель был собран "мусор", и может привести к утечке памяти. Это рекомендуется любому нерегистру слушателя, вызывая removeListener
после использования или использовать экземпляр WeakChangeListener
избегите этой ситуации.
listener
- Слушатель регистраjava.lang.NullPointerException
- если слушатель является нулемremoveListener(ChangeListener)
void removeListener(ChangeListener<? super T> listener)
ObservableValue
изменения. Если данный слушатель не был ранее зарегистрирован (то есть это никогда не добавлялось), тогда, этот вызов метода нет. Если это было ранее добавлено тогда, что это будет удалено. Если это было добавлено не раз, то только первое возникновение будет удалено.
listener
- Слушатель, чтобы удалитьjava.lang.NullPointerException
- если слушатель является нулемaddListener(ChangeListener)
T getValue()
ObservableValue
Copyright (c) 2008, 2012, Oracle и/или его филиалы. Все права защищены. Использование подвергается