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, 2013, Oracle and/or its affiliates. All rights reserved.