public class Observable extends Object
一个可观察的对象可以有一个或多个观察者。观察者可以是任何对象实现的接口Observer。经过观察情况的变化,应用程序中调用Observable
的notifyObservers
方法使其所有观察员被通知通过调用他们的update
方法的变化。
通知将被传递的顺序是未指定的。在观察类提供的默认实现将通知观察员在他们注册的兴趣的顺序,但子类可能会改变这个顺序,使用没有保证的顺序,在单独的线程上提供通知,或可能保证他们的子类遵循这个顺序,因为他们选择。
注意,这个通知机制无关的线程并从wait和类Object notify机制完全独立。
当一个可观察到的对象是新创建的,它的一组观察者是空的。两观察家认为,同样的当且仅当他们equals方法返回true。
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
如果参数为空。
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()
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.