- java.lang.Object
-
- java.util.Observable
-
已过时。此类和Observer
接口已被弃用。Observer
和Observable
支持的事件模式是非常有限的,Observable
发送的通知顺序是未指定的,状态更改不与通知一一对应。 对于更丰富的事件模型,请考虑使用java.beans
软件包。 对于线程之间的可靠和有序的消息传递,请考虑使用java.util.concurrent
包中的并发数据结构之一。 对于反应流样式编程,请参阅Flow
API。
@Deprecated(since="9") public class Observable extends Object
此类表示可观察对象或模型视图范例中的“数据”。 它可以被子类化以表示应用程序想要观察到的对象。可观察对象可以有一个或多个观察者。 观察者可以是实现接口
Observer
任何对象。 在可观察到的实例发生变化之后,调用Observable
的notifyObservers
方法的应用程序会使其所有观察者通过调用其update
方法通知更改。通知的发送顺序是未指定的。 Observable类中提供的默认实现将以注册感兴趣的顺序通知Observers,但子类可能会更改此顺序,不使用保证的顺序,在单独的线程上发送通知,或者可以保证其子类遵循此顺序,因为它们选择。
请注意,此通知机制无关,与线程,是从完全独立
wait
和notify
类的机制Object
。当新创建一个可观察对象时,其观察者集合为空。 当且仅当
equals
方法为它们返回true时,两个观察者被认为是相同的。
-
-
构造方法摘要
构造方法 Constructor 描述 Observable()
已过时。用零观察者构建可观测值。
-
方法摘要
所有方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 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
。
-
-
-
方法详细信息
-
addObserver
public void addObserver(Observer o)
已过时。将一个观察者添加到该对象的观察者组中,前提是它与集合中已有的一些观察者不一样。 未指定通知发送给多个观察者的顺序。 看到课堂评论。- 参数
-
o
- 要添加的观察者。 - 异常
-
NullPointerException
- 如果参数o为空。
-
deleteObserver
public void deleteObserver(Observer o)
已过时。从该对象的观察者组中删除观察者。 传递null
到这个方法将没有效果。- 参数
-
o
- 要删除的观察者。
-
notifyObservers
public void notifyObservers()
已过时。如果此对象已更改,如hasChanged
方法所示,则通知其所有观察者,然后调用clearChanged
方法来指示此对象已不再更改。每个观察者都有其
update
方法调用两个参数:这个可观察对象和null
。 换句话说,这个方法相当于:notifyObservers(null)
-
notifyObservers
public void notifyObservers(Object arg)
已过时。如果此对象发生更改,如hasChanged
,则通知所有其观察者,然后调用clearChanged
方法来指示此对象已不再更改。每个观察者都有其
update
方法调用两个参数:这个可观察对象和arg
参数。- 参数
-
arg
- 任何对象。 - 另请参见:
-
clearChanged()
,hasChanged()
,Observer.update(java.util.Observable, java.lang.Object)
-
deleteObservers
public void deleteObservers()
已过时。清除观察者列表,使此对象不再有任何观察者。
-
setChanged
protected void setChanged()
已过时。将此Observable
对象标记为已更改;hasChanged
方法现在将返回true
。
-
clearChanged
protected void clearChanged()
已过时。表示此对象已不再更改,或已经通知其所有观察者其最近更改,因此hasChanged
方法现在将返回false
。 这种方法是由notifyObservers
方法自动调用的。
-
hasChanged
public boolean hasChanged()
已过时。测试此对象是否已更改。- 结果
-
true
当且仅当setChanged
方法最近被调用了该对象上的clearChanged
方法时;false
否则。 - 另请参见:
-
clearChanged()
,setChanged()
-
countObservers
public int countObservers()
已过时。返回此Observable
对象的观察者数。- 结果
- the number of observers of this object.
-
-