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