Spec-Zone.ru › OpenJDK 8

Класс Observable

  • java.lang.Object
    • java.util.Observable

public class Observable
extends Object

Этот класс представляет наблюдаемый объект или «данные» в парадигме модель-представление. Он может быть подклассом для представления объекта, за которым приложение хочет наблюдать.

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

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

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

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

Since:
JDK1.0
См. также:
notifyObservers(), notifyObservers(java.lang.Object), Observer, Observer.update(java.util.Observable, java.lang.Object)

Конструкторы

Конструктор и описание
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.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Конструкторы

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)
См. также:
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.

Возвращает:
количество наблюдателей этого объекта.

© 1993, 2020, 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