java.lang.Object
java.util.Observable
@Deprecated(since="9") public class Observable extends Object
非推奨。
このクラスは、Observableオブジェクト、つまりモデル/ビュー・パラダイムの「データ」を表します。 アプリケーションが被監視にするオブジェクトを表すために、このクラスをサブクラス化できます。
Observableオブジェクトは、1つまたは複数のObserverを持つことができます。 Observerには、Observer
インタフェースを実装するオブジェクトが成ることができます。 Observableインスタンスは変わると、そのObservable
のnotifyObservers
メソッドを呼び出すアプリケーションは、そのすべてのObserverに対してそれらのupdate
メソッドを呼び出すことで変更を通知します。
通知が配信される順序は未指定です。 Observableクラスで提供されるデフォルト実装がObserverに通知する順序は、Observerが登録した重要度に基づきますが、サブクラスは必要に応じてこの順序を変更したり、未保証の順序を使用したり、スレッドごとに通知を配信したり、サブクラスがこの順序に従うことを保証したりできます。
この通知メカニズムはスレッドとは無関係であり、Object
クラスのwait
およびnotify
メカニズムからは完全に独立しています。
Observableオブジェクトが新しく作成されたときに、Observerのセットは空です。 2つのObserverは、equals
メソッドがそれらについてtrueを返す場合にだけ、同じと見なされます。
-
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明void
非推奨。このオブジェクトのObserverのセットにObserverを追加します(セット内にすでにあるいくつかのObserverと同じでない場合)。protected void
非推奨。このオブジェクトがもう変更された状態でないこと、つまり、最新の変更がすべてのObserverにすでに通知されて、以降はhasChanged
メソッドがfalse
を返すことを示します。int
非推奨。このObservable
オブジェクトのObserverの数を返します。void
非推奨。このオブジェクトのObserverのセットから1つのObserverを削除します。void
非推奨。Observerリストをクリアします(このオブジェクトにObserverがなくなります)。boolean
非推奨。このオブジェクトが変更されたかどうかを判定します。void
非推奨。このオブジェクトが変更された場合(hasChanged
メソッドで示される)、そのすべてのObserverに通知してから、clearChanged
メソッドを呼び出してこのオブジェクトがもう変更された状態でないことを示します。void
notifyObservers
(Object arg) 非推奨。このオブジェクトが変更された場合(hasChanged
メソッドで示される)、そのすべてのObserverに通知してから、clearChanged
メソッドを呼び出してこのオブジェクトがもう変更された状態でないことを示します。protected void
非推奨。このObservable
オブジェクトを変更されたものとしてマークします。以降はhasChanged
メソッドがtrue
を返します。
-
コンストラクタの詳細
-
Observable
public Observable()非推奨。ObserverがゼロでObservableを構築します。
-
-
メソッドの詳細
-
addObserver
public void addObserver(Observer o) 非推奨。このオブジェクトのObserverのセットにObserverを追加します(セット内にすでにあるいくつかのObserverと同じでない場合)。 複数のObserverに通知が配信される順序は未指定です。 クラスのコメントを参照してください。- パラメータ:
o
- 追加するObserver。- 例外:
NullPointerException
- パラメータoがnullの場合。
-
deleteObserver
public void deleteObserver(Observer o) 非推奨。このオブジェクトのObserverのセットから1つのObserverを削除します。 このメソッドにnull
を渡しても、何の効果もありません。- パラメータ:
o
- 削除するObserver。
-
notifyObservers
public void notifyObservers()非推奨。このオブジェクトが変更された場合(hasChanged
メソッドで示される)、そのすべてのObserverに通知してから、clearChanged
メソッドを呼び出してこのオブジェクトがもう変更された状態でないことを示します。各Observerの
update
メソッドは、2つの引数(このObservableオブジェクトとnull
)で呼び出されます。 つまり、このメソッドは次と同じになります。notifyObservers(null)
-
notifyObservers
public void notifyObservers(Object arg) 非推奨。このオブジェクトが変更された場合(hasChanged
メソッドで示される)、そのすべてのObserverに通知してから、clearChanged
メソッドを呼び出してこのオブジェクトがもう変更された状態でないことを示します。各Observerの
update
メソッドは、2つの引数(このObservableオブジェクトとarg
引数)で呼び出されます。- パラメータ:
arg
- 任意のオブジェクト。- 関連項目:
-
deleteObservers
public void deleteObservers()非推奨。Observerリストをクリアします(このオブジェクトにObserverがなくなります)。 -
setChanged
protected void setChanged()非推奨。このObservable
オブジェクトを変更されたものとしてマークします。以降はhasChanged
メソッドがtrue
を返します。 -
clearChanged
protected void clearChanged()非推奨。このオブジェクトがもう変更された状態でないこと、つまり、最新の変更がすべてのObserverにすでに通知されて、以降はhasChanged
メソッドがfalse
を返すことを示します。 このメソッドは、notifyObservers
メソッドによって自動的に呼び出されます。 -
hasChanged
public boolean hasChanged()非推奨。このオブジェクトが変更されたかどうかを判定します。- 戻り値:
- このオブジェクトで
clearChanged
メソッドよりあとにsetChanged
メソッドが呼び出された場合にだけtrue
、そうでない場合はfalse
。 - 関連項目:
-
countObservers
public int countObservers()非推奨。このObservable
オブジェクトのObserverの数を返します。- 戻り値:
- このオブジェクトのObserverの数
-
Observer
インタフェースは非推奨になっています。Observer
とObservable
でサポートされているイベント・モデルは非常に限定されており、Observable
によって配信される通知の順序は不定であり、状態の変更は通知と1対1で対応していません。 豊富なイベント・モデルの場合は、java.beans
パッケージの使用を検討してください。 スレッド間の信頼性の高い順序付きメッセージングのために、java.util.concurrent
パッケージ内の同時データ構造の1つを使用することを検討してください。 リアクティブ・ストリーム・スタイルのプログラミングについては、Flow
APIを参照してください。