模块  java.base
软件包  java.util

Class Observable


  • @Deprecated(since="9")
    public class Observable
    extends Object
    Deprecated.
    This class and the Observer interface have been deprecated. The event model supported by Observer and Observable is quite limited, the order of notifications delivered by Observable is unspecified, and state changes are not in one-for-one correspondence with notifications. For a richer event model, consider using the java.beans package. For reliable and ordered messaging among threads, consider using one of the concurrent data structures in the java.util.concurrent package. For reactive streams style programming, see the Flow API.
    此类表示模型 - 视图范例中的可观察对象或“数据”。 它可以被子类化以表示应用程序想要观察的对象。

    可观察对象可以有一个或多个观察者。 观察者可以是实现接口Observer任何对象。 后可观察到的情况下改变,调用应用程序ObservablenotifyObservers方法将导致其所有观察者,通过向他们打电话通知的改变update方法。

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

    请注意,此通知机制与线程无关,并且与类Objectwaitnotify机制完全分开。

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

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

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

      • Observable

        public Observable()
        Deprecated.
        构造一个零观察者的Observable。
    • 方法详细信息

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

        public boolean hasChanged()
        Deprecated.
        测试此对象是否已更改。
        结果
        true当且仅当setChanged方法比此对象上的clearChanged方法调用时更新; 否则为false
        另请参见:
        clearChanged()setChanged()
      • countObservers

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