Module  java.base
软件包  java.util

Class Observable


  • 已过时。
    此类和Observer接口已被弃用。 ObserverObservable支持的事件模式是非常有限的, Observable发送的通知顺序是未指定的,状态更改不与通知一一对应。 对于更丰富的事件模型,请考虑使用java.beans软件包。 对于线程之间的可靠和有序的消息传递,请考虑使用java.util.concurrent包中的并发数据结构之一。 对于反应流样式编程,请参阅Flow API。

    @Deprecated(since="9")
    public class Observable
    extends Object
    此类表示可观察对象或模型视图范例中的“数据”。 它可以被子类化以表示应用程序想要观察到的对象。

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

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

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

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

    从以下版本开始:
    1.0
    另请参见:
    notifyObservers()notifyObservers(java.lang.Object)ObserverObserver.update(java.util.Observable, java.lang.Object)
    • 构造方法摘要

      构造方法  
      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
    • 构造方法详细信息

      • Observable

        public Observable​()
        已过时。
        用零观察者构建可观测值。
    • 方法详细信息

      • 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)
        另请参见:
        clearChanged()hasChanged()Observer.update(java.util.Observable, java.lang.Object)
      • 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方法自动调用的。
        另请参见:
        notifyObservers()notifyObservers(java.lang.Object)
      • hasChanged

        public boolean hasChanged​()
        已过时。
        测试此对象是否已更改。
        结果
        true当且仅当setChanged方法最近被调用了该对象上的clearChanged方法时; false否则。
        另请参见:
        clearChanged()setChanged()
      • countObservers

        public int countObservers​()
        已过时。
        返回此 Observable对象的观察者数。
        结果
        the number of observers of this object.