- java.lang.Object
-
- java.util.Observable
-
@Deprecated(since="9")public class Observableextends Object
Deprecated.This class and theObserver
interface have been deprecated. The event model supported byObserver
andObservable
is quite limited, the order of notifications delivered byObservable
is unspecified, and state changes are not in one-for-one correspondence with notifications. For a richer event model, consider using thejava.beans
package. For reliable and ordered messaging among threads, consider using one of the concurrent data structures in thejava.util.concurrent
package. For reactive streams style programming, see theFlow
API.此类表示模型 - 视图范例中的可观察对象或“数据”。 它可以被子类化以表示应用程序想要观察的对象。可观察对象可以有一个或多个观察者。 观察者可以是实现接口
Observer
任何对象。 后可观察到的情况下改变,调用应用程序Observable
的notifyObservers
方法将导致其所有观察者,通过向他们打电话通知的改变update
方法。未指定通知的递送顺序。 Observable类中提供的默认实现将按照它们注册的顺序通知Observers,但是子类可能会更改此顺序,不使用保证顺序,在单独的线程上发送通知,或者可以保证它们的子类遵循此顺序,因为它们选择。
请注意,此通知机制与线程无关,并且与类
Object
的wait
和notify
机制完全分开。当新创建可观察对象时,其观察者集合为空。 当且仅当
equals
方法为它们返回true时,才认为两个观察者是相同的。
-
-
构造方法摘要
构造方法 构造器 描述 Observable()
已过时。构造一个零观察者的Observable。
-
方法摘要
所有方法 实例方法 具体的方法 弃用的方法 变量和类型 方法 描述 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)
Deprecated.将观察者添加到此对象的观察者集中,前提是它与集合中已有的某个观察者不同。 未指定将通知发送给多个观察者的顺序。 查看课程评论。- 参数
-
o
- 要添加的观察者。 - 异常
-
NullPointerException
- 如果参数o为null。
-
deleteObserver
public void deleteObserver(Observer o)
Deprecated.从此对象的观察者集中删除观察者。 将null
传递给此方法将无效。- 参数
-
o
- 要删除的观察者。
-
notifyObservers
public void notifyObservers()
Deprecated.如果此对象已更改(如hasChanged
方法所示),则通知其所有观察者,然后调用clearChanged
方法以指示此对象不再更改。每个观察者都使用两个参数调用其
update
方法:此可观察对象和null
。 换句话说,这种方法相当于:notifyObservers(null)
-
notifyObservers
public void notifyObservers(Object arg)
Deprecated.如果此对象已更改(如hasChanged
方法所示),则通知其所有观察者,然后调用clearChanged
方法以指示此对象不再更改。每个观察者都使用两个参数调用其
update
方法:此可观察对象和arg
参数。- 参数
-
arg
- 任何物件。 - 另请参见:
-
clearChanged()
,hasChanged()
,Observer.update(java.util.Observable, java.lang.Object)
-
deleteObservers
public void deleteObservers()
Deprecated.清除观察者列表,以便此对象不再具有任何观察者。
-
setChanged
protected void setChanged()
Deprecated.将此Observable
对象标记为已更改;hasChanged
方法现在将返回true
。
-
clearChanged
protected void clearChanged()
Deprecated.指示此对象已不再更改,或者已向其所有观察者通知其最近更改,以便hasChanged
方法现在将返回false
。notifyObservers
方法自动调用此方法。
-
hasChanged
public boolean hasChanged()
Deprecated.测试此对象是否已更改。- 结果
-
true
当且仅当setChanged
方法比此对象上的clearChanged
方法调用时更新; 否则为false
。 - 另请参见:
-
clearChanged()
,setChanged()
-
countObservers
public int countObservers()
Deprecated.返回此Observable
对象的观察者数。- 结果
- the number of observers of this object.
-
-