Класс Observable
@Deprecated(since="9") public class Observable extends Object
Наблюдаемый объект может иметь одного или нескольких наблюдателей. Наблюдатель может быть любым объектом, который реализует интерфейс Observer. После изменения экземпляра наблюдаемого объекта, вызов метода Observable's notifyObservers вызывает уведомление всех его наблюдателей о изменении посредством вызова их метода update.
Порядок, в котором будут доставлены уведомления, не определён. По умолчанию реализация в классе Observable уведомит наблюдателей в порядке, в котором они зарегистрировали интерес, но подклассы могут изменить этот порядок, использовать не гарантированный порядок, доставлять уведомления в отдельных потоках, или гарантировать, что их подкласс следует этому порядку, по своему усмотрению.
Обратите внимание, что этот механизм уведомлений не связан с потоками и полностью отделен от механизма wait и notify класса Object.
Когда создаётся новый наблюдаемый объект, его набор наблюдателей пуст. Два наблюдателя считаются одинаковыми, если и только если метод equals возвращает true для них.
- С:
- 1.0
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
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, 2023, 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/21/docs/api/java.base/java/util/Observable.html
Observerустарели. Модель событий, поддерживаемаяObserverиObservable, довольно ограничена, порядок уведомлений, предоставляемыхObservableне определён, и изменения состояния не соответствуют уведомлениям один к одному. Для более богатой модели событий, рассмотрите использование пакетаjava.beans. Для надёжной и упорядоченной передачи сообщений между потоками, рассмотрите использование одних из конкурирующих структур данных в пакетеjava.util.concurrent. Для программирования в стиле реактивных потоков, см. APIFlow.