Spec-Zone.ru › OpenJDK 27

Класс Observable

java.lang.Object
java.util.Observable
@Deprecated(since="9") public class Observable extends Object
Устарело.
Этот класс и интерфейс Observer устарели. Модель событий, поддерживаемая Observer и Observable, довольно ограничена, порядок уведомлений, отправляемых Observable, не определён, а изменения состояния не соответствуют уведомлениям один к одному. Для более развитой модели событий рассмотрите возможность использования пакета java.beans. Для надёжного упорядоченного обмена сообщениями между потоками рассмотрите возможность использования одной из параллельных структур данных пакета java.util.concurrent. О программировании в стиле реактивных потоков см. API Flow.
Этот класс представляет наблюдаемый объект, или «данные» в парадигме модель–представление. Его можно расширить, чтобы представить объект, за которым приложение хочет наблюдать.

У наблюдаемого объекта может быть один или несколько наблюдателей. Наблюдателем может быть любой объект, реализующий интерфейс Observer. После изменения экземпляра наблюдаемого объекта вызов приложением метода notifyObservers объекта Observable приводит к уведомлению всех его наблюдателей об изменении посредством вызова их метода update.

Порядок доставки уведомлений не определён. Реализация по умолчанию, предоставляемая классом Observable, уведомляет наблюдателей в порядке регистрации их интереса, однако подклассы могут изменить этот порядок, не гарантировать никакого порядка, отправлять уведомления в отдельных потоках или, по своему усмотрению, гарантировать, что их подкласс будет соблюдать этот порядок.

Обратите внимание, что этот механизм уведомлений не связан с потоками и полностью отделён от механизма wait и notify класса Object.

При создании наблюдаемого объекта его набор наблюдателей пуст. Два наблюдателя считаются одинаковыми тогда и только тогда, когда для них метод equals возвращает true.

Начиная с:
1.0
См. также:
  • notifyObservers()
  • notifyObservers(java.lang.Object)
  • Observer
  • Observer.update(java.util.Observable, java.lang.Object)

Краткое описание конструкторов

Конструктор Описание
Observable()
Устарело.
Создаёт Observable без наблюдателей.

Краткое описание методов

Модификатор и тип Метод Описание
void addObserver(Observer o)
Устарело.
Добавляет наблюдателя в набор наблюдателей этого объекта, если в наборе ещё нет такого наблюдателя.
protected void clearChanged()
Устарело.
Указывает, что этот объект больше не изменялся или уже уведомил всех своих наблюдателей о последнем изменении, поэтому метод hasChanged теперь вернёт false.
int countObservers()
Устарело.
Возвращает количество наблюдателей этого объекта Observable.
void deleteObserver(Observer o)
Устарело.
Удаляет наблюдателя из набора наблюдателей этого объекта.
void deleteObservers()
Устарело.
Очищает список наблюдателей, чтобы у этого объекта больше не было наблюдателей.
boolean hasChanged()
Устарело.
Проверяет, изменился ли этот объект.
void notifyObservers()
Устарело.
Если этот объект изменился, о чём свидетельствует метод hasChanged, уведомляет всех его наблюдателей, а затем вызывает метод clearChanged, чтобы указать, что объект больше не изменялся.
void notifyObservers(Object arg)
Устарело.
Если этот объект изменился, о чём свидетельствует метод 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(Object obj)
Указывает, равен ли какой-либо другой объект этому объекту.
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(long timeoutMillis)
Заставляет текущий поток ожидать до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

Observable

public Observable()
Устарело.
Создает 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)
См. также:
  • clearChanged()
  • hasChanged()
  • Observer.update(java.util.Observable, java.lang.Object)

notifyObservers

public void notifyObservers(Object arg)
Устарело.
Если этот объект изменился, о чем свидетельствует вызов метода hasChanged, то уведомляет всех своих наблюдателей, а затем вызывает метод clearChanged, чтобы указать, что этот объект больше не изменялся.

Для каждого наблюдателя вызывается метод update с двумя аргументами: этот наблюдаемый объект и аргумент arg.

Параметры:
arg — любой объект.
См. также:
  • clearChanged()
  • hasChanged()
  • Observer.update(java.util.Observable, java.lang.Object)

deleteObservers

public void deleteObservers()
Устарело.
Очищает список наблюдателей, чтобы у этого объекта больше не было наблюдателей.

setChanged

protected void setChanged()
Устарело.
Помечает этот объект Observable как изменившийся; метод hasChanged теперь будет возвращать true.

clearChanged

protected void clearChanged()
Устарело.
Указывает, что этот объект больше не изменялся или что он уже уведомил всех своих наблюдателей о последнем изменении, поэтому метод hasChanged теперь будет возвращать false. Этот метод автоматически вызывается методами notifyObservers.
См. также:
  • notifyObservers()
  • notifyObservers(java.lang.Object)

hasChanged

public boolean hasChanged()
Устарело.
Проверяет, изменился ли этот объект.
Возвращает:
true тогда и только тогда, когда метод setChanged был вызван для этого объекта позже, чем метод clearChanged; в противном случае — false.
См. также:
  • clearChanged()
  • setChanged()

countObservers

public int countObservers()
Устарело.
Возвращает количество наблюдателей этого объекта Observable.
Возвращает:
количество наблюдателей этого объекта.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API