public class Observable
extends Object
java.lang.Object | |
↳ | java.util.Observable |
Known Direct Subclasses |
这个类表示一个可观察对象,或者模型视图范例中的“数据”。 它可以被分类为表示应用程序想要观察的对象。
可观察对象可以有一个或多个观察者。 观察者可以是实现接口Observer的任何对象。 在可观察实例发生变化后,调用Observable
的notifyObservers
方法的应用程序会通过调用其update
方法来通知其所有观察者。
未指定通知的发送顺序。 Observable类中提供的默认实现将按其注册兴趣的顺序通知Observers,但子类可能会更改此顺序,不使用保证顺序,在单独的线程上传递通知,或者可能保证其子类遵循此顺序,因为它们选择。
请注意,此通知机制无关,与线程,距离 Object类的 wait和 notify机制完全独立。
当一个可观察的对象是新创建的,它的观察者集合是空的。 当且仅当equals方法为它们返回true时,两个观察者才被认为是相同的。
也可以看看:
Public constructors |
|
---|---|
Observable() 用零个观察者构建一个可观察者。 |
Public methods |
|
---|---|
void |
addObserver(Observer o) 为该对象的观察者集合添加一个观察者,前提是它与已经在该集合中的一些观察者不相同。 |
int |
countObservers() 返回此 Observable对象的观察者数量。 |
void |
deleteObserver(Observer o) 从该对象的一组观察者中删除一个观察者。 |
void |
deleteObservers() 清除观察者列表,以便该对象不再有任何观察者。 |
boolean |
hasChanged() 测试此对象是否已更改。 |
void |
notifyObservers(Object arg) 如果此对象已发生变化(如 |
void |
notifyObservers() 如果该对象发生了变化(如 |
Protected methods |
|
---|---|
void |
clearChanged() 表示该对象已不再更改,或者已将其最近一次更改通知给所有观察者,以便 hasChanged方法现在将返回 false 。 |
void |
setChanged() 将此Observable对象标记为已更改; hasChanged方法现在将返回true 。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
void addObserver (Observer o)
为该对象的观察者集合添加一个观察者,前提是它与已经在该集合中的一些观察者不相同。 未指定将通知发送给多个观察员的顺序。 查看课堂评论。
Parameters | |
---|---|
o |
Observer : an observer to be added. |
Throws | |
---|---|
NullPointerException |
if the parameter o is null. |
int countObservers ()
返回此 Observable对象的观察者数目。
Returns | |
---|---|
int |
the number of observers of this object. |
void deleteObserver (Observer o)
从该对象的一组观察者中删除一个观察者。 将null
传递给此方法将不起作用。
Parameters | |
---|---|
o |
Observer : the observer to be deleted. |
boolean hasChanged ()
测试此对象是否已更改。
Returns | |
---|---|
boolean |
true if and only if the setChanged method has been called more recently than the clearChanged method on this object; false otherwise. |
也可以看看:
void notifyObservers (Object arg)
如果此对象已发生变化(如 hasChanged
方法所示),则通知其所有观察者,然后调用 clearChanged
方法指示此对象已不再更改。
每个观察者使用两个参数调用 update
方法:此可观察对象和 arg
参数。
Parameters | |
---|---|
arg |
Object : any object. |
void notifyObservers ()
如果该对象发生了变化(如 hasChanged
方法所示),则通知其所有观察者,然后调用 clearChanged
方法来指示该对象已不再更改。
每个观察者都使用两个参数调用update
方法:此可观察对象和null
。 换句话说,这种方法相当于:
notifyObservers(null)
void clearChanged ()
表示该对象已不再更改,或者已经通知其所有观察者其最新更改,以便hasChanged方法现在将返回false 。 该方法由notifyObservers
方法自动调用。