public class Observable extends Object
可观察对象可以有一个或多个观察者。 观察者可以是实现接口Observer的任何对象。 在可观察到的实例发生变化之后,调用Observable的notifyObservers方法的应用程序会使其所有观察者通过调用其update方法通知更改。
通知的发送顺序是未指定的。 Observable类中提供的默认实现将以注册感兴趣的顺序通知Observers,但子类可能会更改此顺序,不使用保证的顺序,在单独的线程上发送通知,或者可以保证其子类遵循此顺序,因为它们选择。
请注意,此通知机制与线程无关,与Object的wait和notify机制完全分离 。
当新创建一个可观察对象时,其观察者集合为空。 当且仅当equals方法为它们返回true时,两个观察者被认为是相同的。
notifyObservers() , notifyObservers(java.lang.Object) , Observer , Observer.update(java.util.Observable, java.lang.Object)
| Constructor and Description |
|---|
Observable()
用零观察者构建可观测值。
|
| Modifier and Type | Method and Description |
|---|---|
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方法notifyObservers调用。
public boolean hasChanged()
true当且仅当setChanged方法最近被调用的方法比该对象上的clearChanged方法更clearChanged ;
false否则。
clearChanged() ,
setChanged()
public int countObservers()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.