Класс Observable
@Deprecated(since="9") public class Observable extends Object
Наблюдаемый объект может иметь одного или более наблюдателей. Наблюдателем может быть любой объект, реализующий интерфейс Observer. После изменения экземпляра наблюдаемого объекта, приложение, вызывающее метод Observable's notifyObservers , вызывает уведомление всех своих наблюдателей о изменении с помощью вызова их метода update .
Порядок доставки уведомлений не определён. Реализация по умолчанию в классе Observable уведомляет наблюдателей в порядке их регистрации, но подклассы могут изменить этот порядок, использовать незащищённый порядок, доставлять уведомления в отдельных потоках или гарантировать, что их подкласс следует этому порядку, по своему усмотрению.
Обратите внимание, что эта механизм уведомления не связан с потоками и полностью отделён от механизма wait и notify класса Object.
Когда наблюдаемый объект только что создан, его набор наблюдателей пуст. Два наблюдателя считаются одинаковыми тогда и только тогда, когда метод equals возвращает true для них.
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Observable() |
Устаревшее. Создаёт Observable с нулевыми наблюдателями. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addObserver |
Устаревшее. Добавляет наблюдателя к набору наблюдателей для этого объекта, при условии, что он не такой же, как какой-либо наблюдатель, уже в наборе. |
protected void |
clearChanged() |
Устаревшее. Указывает, что этот объект больше не изменился или что он уже уведомил всех своих наблюдателей о своём последнем изменении, так что метод hasChanged теперь вернёт false. |
int |
countObservers() |
Устаревшее. Возвращает количество наблюдателей этого объекта Observable. |
void |
deleteObserver |
Устаревшее. Удаляет наблюдателя из набора наблюдателей этого объекта. |
void |
deleteObservers() |
Устаревшее. Очищает список наблюдателей, так что этот объект больше не имеет наблюдателей. |
boolean |
hasChanged() |
Устаревшее. Проверяет, изменился ли этот объект. |
void |
notifyObservers() |
Устаревшее. Если этот объект изменился, как указано методом hasChanged, то уведомить всех своих наблюдателей и затем вызвать метод clearChanged, чтобы указать, что этот объект больше не изменился. |
void |
notifyObservers |
Устаревшее. Если этот объект изменился, как указано методом hasChanged, то уведомить всех своих наблюдателей и затем вызвать метод clearChanged, чтобы указать, что этот объект больше не изменился. |
protected void |
setChanged() |
Устаревшее. Помечает этот объект Observable как изменённый; метод hasChanged теперь вернёт true. |
Подробное описание конструкторов
Observable
public Observable()
Подробное описание методов
addObserver
public void addObserver(Observer o)
- Параметры:
-
o- наблюдатель для добавления. - Исключения:
-
NullPointerException- если параметр o равен null.
deleteObserver
public void deleteObserver(Observer o)
null в этот метод не окажет никакого эффекта.- Параметры:
-
o- наблюдатель для удаления.
notifyObservers
public void notifyObservers()
hasChanged, то уведомляются все его наблюдатели, а затем вызывается метод clearChanged, чтобы указать, что этот объект больше не изменился. Каждый наблюдатель получает вызов метода update с двумя аргументами: этот наблюдаемый объект и null. Другими словами, этот метод эквивалентен:
notifyObservers(null)
notifyObservers
public void notifyObservers(Object arg)
hasChanged, то уведомляются все его наблюдатели, а затем вызывается метод clearChanged, чтобы указать, что этот объект больше не изменился. Каждый наблюдатель получает вызов метода update с двумя аргументами: этот наблюдаемый объект и переданный в качестве аргумента arg.
- Параметры:
-
arg- любой объект. - См. также:
deleteObservers
public void deleteObservers()
setChanged
protected void setChanged()
Observable объект как изменённый; метод hasChanged теперь вернёт true. clearChanged
protected void clearChanged()
hasChanged теперь вернёт false. Этот метод вызывается автоматически методами notifyObservers.hasChanged
public boolean hasChanged()
- Возвращает:
-
trueтогда и только тогда, когда методsetChangedбыл вызван позже, чем методclearChangedна этом объекте;falseв противном случае. - См. также:
countObservers
public int countObservers()
Observable объекта.- Возвращает:
- количество наблюдателей этого объекта.
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Observable.html
Observerустарели. Модель событий, поддерживаемаяObserverиObservable, довольно ограничена, порядок уведомлений, доставляемыхObservable, не определён, а изменения состояния не соответствуют уведомлениям один к одному. Для более богатой модели событий, рассмотрите использование пакетаjava.beans. Для надёжной и упорядоченной передачи сообщений между потоками, рассмотрите использование одного из конкурирующих структур данных в пакетеjava.util.concurrent. Для программирования в стиле реактивных потоков, см. APIFlow.