Spec-Zone .ru
спецификации, руководства, описания, API
|
public class Observable extends Object
У заметного объекта могут быть один или более наблюдателей. Наблюдатель может быть любым объектом, который реализует интерфейсный Observer. После того, как заметный экземпляр изменяется, приложение, вызывая Observable
's notifyObservers
метод заставляет всех своих наблюдателей быть уведомленными относительно изменения звонком в их update
метод.
Порядок, в котором будут поставлены уведомления, является неуказанным. Реализация по умолчанию, обеспеченная в Заметном классе, уведомит Наблюдателей в порядке, к которому они зарегистрировали интерес, но подклассы могут изменить этот порядок, не использовать гарантируемый порядок, поставить уведомления на отдельных потоках, или могут гарантировать, что их подкласс следует за этим порядком, как они выбирают.
Отметьте, что этот механизм уведомления, не имеет никакого отношения к потокам и является абсолютно отдельным от wait и механизма notify класса Object.
Когда заметный объект недавно создается, его группа наблюдателей пуста. Двух наблюдателей считают тем же самым, если и только если метод equals возвращает true для них.
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.
|
public void addObserver(Observer o)
o
- наблюдатель, который будет добавлен.NullPointerException
- если параметр o является нулем.public void deleteObserver(Observer o)
null
к этому методу не будет иметь никакого эффекта.o
- наблюдатель, который будет удален.public void notifyObservers()
hasChanged
метод, затем уведомьте всех его наблюдателей и затем вызовите clearChanged
метод, чтобы указать, что этот объект больше не изменился. У каждого наблюдателя есть update
метод вызывал с двумя параметрами: этот заметный объект и null
. Другими словами этот метод эквивалентен:
notifyObservers(null)
public void notifyObservers(Object arg)
hasChanged
метод, затем уведомьте всех его наблюдателей и затем вызовите clearChanged
метод, чтобы указать, что этот объект больше не изменился. У каждого наблюдателя есть update
метод вызывал с двумя параметрами: этот заметный объект и arg
параметр.
arg
- любой объект.clearChanged()
, hasChanged()
, Observer.update(java.util.Observable, java.lang.Object)
public void deleteObservers()
protected void setChanged()
protected void clearChanged()
notifyObservers
методы.public boolean hasChanged()
true
если и только если setChanged
метод вызвали позже чем clearChanged
метод на этом объекте; false
иначе.clearChanged()
, setChanged()
public int countObservers()
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.