public class Observable extends Object
Observableオブジェクトは、1つまたは複数のObserverを持つことができます。Observerには、Observerインタフェースを実装するオブジェクトが成ることができます。Observableインスタンスは変わると、そのObservable
のnotifyObservers
メソッドを呼び出すアプリケーションは、そのすべてのObserverに対してそれらのupdate
メソッドを呼び出すことで変更を通知します。
通知が配信される順序は未指定です。Observableクラスで提供されるデフォルト実装がObserverに通知する順序は、Observerが登録した重要度に基づきますが、サブクラスは必要に応じてこの順序を変更したり、未保証の順序を使用したり、スレッドごとに通知を配信したり、サブクラスがこの順序に従うことを保証したりできます。
この通知メカニズムはスレッドとは無関係であり、Objectクラスのwaitおよびnotifyメカニズムからは完全に独立しています。
Observableオブジェクトが新しく作成されたときに、Observerのセットは空です。2つのObserverは、equalsメソッドがそれらについてtrueを返す場合にだけ、同じと見なされます。
notifyObservers()
, notifyObservers(java.lang.Object)
, Observer
, Observer.update(java.util.Observable, java.lang.Object)
コンストラクタと説明 |
---|
Observable()
ObserverがゼロでObservableを構築します。
|
修飾子と型 | メソッドと説明 |
---|---|
void |
addObserver(Observer o)
このオブジェクトのObserverのセットにObserverを追加します(セット内にすでにあるいくつかのObserverと同じでない場合)。
|
protected void |
clearChanged()
このオブジェクトがもう変更された状態でないこと、つまり、最新の変更がすべてのObserverにすでに通知されて、以降はhasChangedメソッドがfalseを返すことを示します。
|
int |
countObservers()
このObservableオブジェクトのObserverの数を返します。
|
void |
deleteObserver(Observer o)
このオブジェクトのObserverのセットから1つのObserverを削除します。
|
void |
deleteObservers()
Observerリストを消去します(このオブジェクトにObserverがなくなります)。
|
boolean |
hasChanged()
このオブジェクトが変更されたかどうかを判定します。
|
void |
notifyObservers()
このオブジェクトが変更された場合(
hasChanged メソッドで示される)、そのすべてのObserverに通知してから、clearChanged メソッドを呼び出してこのオブジェクトがもう変更された状態でないことを示します。 |
void |
notifyObservers(Object arg)
このオブジェクトが変更された場合(
hasChanged メソッドで示される)、そのすべてのObserverに通知してから、clearChanged メソッドを呼び出してこのオブジェクトがもう変更された状態でないことを示します。 |
protected void |
setChanged()
このObservableオブジェクトを変更されたものとしてマークします。以降はhasChangedメソッドがtrueを返します。
|
public void addObserver(Observer o)
o
- 追加するObserver。NullPointerException
- パラメータoがnullの場合。public void deleteObserver(Observer o)
null
を渡しても、何の効果もありません。o
- 削除するObserver。public void notifyObservers()
hasChanged
メソッドで示される)、そのすべてのObserverに通知してから、clearChanged
メソッドを呼び出してこのオブジェクトがもう変更された状態でないことを示します。
各Observerのupdate
メソッドは、2つの引数(このObservableオブジェクトとnull
)で呼び出されます。つまり、このメソッドは次と同じになります。
notifyObservers(null)
public void notifyObservers(Object arg)
hasChanged
メソッドで示される)、そのすべてのObserverに通知してから、clearChanged
メソッドを呼び出してこのオブジェクトがもう変更された状態でないことを示します。
各Observerのupdate
メソッドは、2つの引数(このObservableオブジェクトとarg
引数)で呼び出されます。
arg
- 任意のオブジェクト。clearChanged()
, hasChanged()
, Observer.update(java.util.Observable, java.lang.Object)
public void deleteObservers()
protected void setChanged()
protected void clearChanged()
notifyObservers
メソッドによって自動的に呼び出されます。public boolean hasChanged()
clearChanged
メソッドよりあとにsetChanged
メソッドが呼び出された場合にだけtrue
、そうでない場合はfalse
。clearChanged()
, setChanged()
public int countObservers()
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.