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