Класс 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() Указывает, что этот объект больше не изменился или что он уже уведомил всех своих наблюдателей о последнем изменении, так что метод |
int |
countObservers() Возвращает количество наблюдателей этого объекта |
void |
deleteObserver(Observer o) Удаляет наблюдателя из набора наблюдателей этого объекта. |
void |
deleteObservers() Очищает список наблюдателей, чтобы этот объект больше не имел наблюдателей. |
boolean |
hasChanged() Проверяет, изменился ли этот объект. |
void |
notifyObservers() Если этот объект изменился, как указано методом |
void |
notifyObservers(Object arg) Если этот объект изменился, как указано методом |
protected void |
setChanged() Помечает этот объект |
Методы, унаследованные от класса 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)
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.