Most visited

Recently visited

Added in API level 1

Observable

public class Observable
extends Object

java.lang.Object
   ↳ java.util.Observable
Known Direct Subclasses


这个类表示一个可观察对象,或者模型视图范例中的“数据”。 它可以被分类为表示应用程序想要观察的对象。

可观察对象可以有一个或多个观察者。 观察者可以是实现接口Observer的任何对象。 在可观察实例发生变化后,调用ObservablenotifyObservers方法的应用程序会通过调用其update方法来通知其所有观察者。

未指定通知的发送顺序。 Observable类中提供的默认实现将按其注册兴趣的顺序通知Observers,但子类可能会更改此顺序,不使用保证顺序,在单独的线程上传递通知,或者可能保证其子类遵循此顺序,因为它们选择。

请注意,此通知机制无关,与线程,距离 Object类的 waitnotify机制完全独立。

当一个可观察的对象是新创建的,它的观察者集合是空的。 当且仅当equals方法为它们返回true时,两个观察者才被认为是相同的。

也可以看看:

Summary

Public constructors

Observable()

用零个观察者构建一个可观察者。

Public methods

void addObserver(Observer o)

为该对象的观察者集合添加一个观察者,前提是它与已经在该集合中的一些观察者不相同。

int countObservers()

返回此 Observable对象的观察者数量。

void deleteObserver(Observer o)

从该对象的一组观察者中删除一个观察者。

void deleteObservers()

清除观察者列表,以便该对象不再有任何观察者。

boolean hasChanged()

测试此对象是否已更改。

void notifyObservers(Object arg)

如果此对象已发生变化(如 hasChanged方法所示),则通知其所有观察者,然后调用 clearChanged方法指示此对象已不再更改。

void notifyObservers()

如果该对象发生了变化(如 hasChanged方法所示),则通知其所有观察者,然后调用 clearChanged方法来指示该对象已不再更改。

Protected methods

void clearChanged()

表示该对象已不再更改,或者已将其最近一次更改通知给所有观察者,以便 hasChanged方法现在将返回 false

void setChanged()

将此Observable对象标记为已更改; hasChanged方法现在将返回true

Inherited methods

From class java.lang.Object

Public constructors

Observable

Added in API level 1
Observable ()

用零个观察者构建一个可观察者。

Public methods

addObserver

Added in API level 1
void addObserver (Observer o)

为该对象的观察者集合添加一个观察者,前提是它与已经在该集合中的一些观察者不相同。 未指定将通知发送给多个观察员的顺序。 查看课堂评论。

Parameters
o Observer: an observer to be added.
Throws
NullPointerException if the parameter o is null.

countObservers

Added in API level 1
int countObservers ()

返回此 Observable对象的观察者数目。

Returns
int the number of observers of this object.

deleteObserver

Added in API level 1
void deleteObserver (Observer o)

从该对象的一组观察者中删除一个观察者。 null传递给此方法将不起作用。

Parameters
o Observer: the observer to be deleted.

deleteObservers

Added in API level 1
void deleteObservers ()

清除观察者列表,以便该对象不再有任何观察者。

hasChanged

Added in API level 1
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.

也可以看看:

notifyObservers

Added in API level 1
void notifyObservers (Object arg)

如果此对象已发生变化(如 hasChanged方法所示),则通知其所有观察者,然后调用 clearChanged方法指示此对象已不再更改。

每个观察者使用两个参数调用 update方法:此可观察对象和 arg参数。

Parameters
arg Object: any object.

也可以看看:

notifyObservers

Added in API level 1
void notifyObservers ()

如果该对象发生了变化(如 hasChanged方法所示),则通知其所有观察者,然后调用 clearChanged方法来指示该对象已不再更改。

每个观察者都使用两个参数调用update方法:此可观察对象和null 换句话说,这种方法相当于:

notifyObservers(null)

也可以看看:

Protected methods

clearChanged

Added in API level 1
void clearChanged ()

表示该对象已不再更改,或者已经通知其所有观察者其最新更改,以便hasChanged方法现在将返回false 该方法由notifyObservers方法自动调用。

也可以看看:

setChanged

Added in API level 1
void setChanged ()

将此Observable对象标记为已更改; hasChanged方法现在将返回true

Hooray!