Класс 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. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли какой-либо другой объект этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация устарела и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого объекта Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать до пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
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.
Observerустарели. Модель событий, поддерживаемаяObserverиObservable, довольно ограничена, порядок уведомлений, отправляемыхObservable, не определён, а изменения состояния не соответствуют уведомлениям один к одному. Для более развитой модели событий рассмотрите возможность использования пакетаjava.beans. Для надёжного упорядоченного обмена сообщениями между потоками рассмотрите возможность использования одной из параллельных структур данных пакетаjava.util.concurrent. О программировании в стиле реактивных потоков см. APIFlow.