Класс Observable
@Deprecated(since="9") public class Observable extends Object
У наблюдаемого объекта может быть один или несколько наблюдателей. Наблюдателем может быть любой объект, реализующий интерфейс Observer. После изменения экземпляра наблюдаемого объекта приложение может вызвать метод notifyObservers объекта Observable, чтобы уведомить всех его наблюдателей об изменении вызовом их метода 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, 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/Observable.html
Observerустарели. Модель событий, поддерживаемаяObserverиObservable, довольно ограничена; порядок уведомлений, доставляемыхObservable, не определён, а изменения состояния не соответствуют уведомлениям один к одному. Для более богатой модели событий рассмотрите возможность использования пакетаjava.beans. Для надёжного упорядоченного обмена сообщениями между потоками рассмотрите возможность использования одной из параллельных структур данных пакетаjava.util.concurrent. Сведения о реактивном программировании в стиле потоков см. в APIFlow.