新聞中心
Observable

java.lang.Object
|---java.util.Observable
public class Observable
extends Object
此類表示可觀察對象,或模型視圖范例中的“數(shù)據(jù)”。 它可以被子類化以表示應(yīng)用程序想要觀察的對象。
一個可觀察對象可以有一個或多個觀察者。 觀察者可以是任何實現(xiàn)了 Observer 接口的對象。 在 observable 實例更改后,調(diào)用 Observable 的 notifyObservers 方法的應(yīng)用程序會通過調(diào)用其 update 方法將更改通知其所有觀察者。
遞送通知的順序是未指定的。觀察者類中提供的默認(rèn)實現(xiàn)將按照觀察者注冊興趣的順序通知他們,但是子類可以改變這個順序,不使用保證的順序,在不同的線程上傳遞通知,或者可以保證他們的子類遵循這個順序,這由他們選擇。
請注意,這種通知機制與線程無關(guān),與 Object 類的等待和通知機制完全分離。
當(dāng)一個可觀察對象被新創(chuàng)建時,它的觀察者集合是空的。 當(dāng)且僅當(dāng)equals方法為他們返回true時,兩個觀察者被認(rèn)為是相同的。
構(gòu)造函數(shù)摘要
| 構(gòu)造函數(shù) | 描述 |
|---|---|
| Observable() | 構(gòu)造一個具有零個觀察者的 Observable。 |
方法總結(jié)
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| void | addObserver(Observer o) | 將一個觀察者添加到該對象的觀察者集合中,前提是它與集合中的某個觀察者不同。 |
| protected void | clearChanged() | 指示此對象不再更改,或者它已經(jīng)通知所有觀察者其最近的更改,因此 hasChanged 方法現(xiàn)在將返回 false。 |
| int | countObservers() | 返回此 Observable 對象的觀察者數(shù)量。 |
| void | deleteObserver(Observer o) | 從該對象的觀察者集中刪除一個觀察者。 |
| void | deleteObservers() | 清除觀察者列表,使該對象不再有任何觀察者。 |
| boolean | hasChanged() | 測試此對象是否已更改。 |
| void | notifyObservers() | 如果該對象發(fā)生了變化,如 hasChanged 方法所示,則通知其所有觀察者,然后調(diào)用 clearChanged 方法以指示該對象不再更改。 |
| void | notifyObservers(Object arg) | 如果該對象發(fā)生了變化,如 hasChanged 方法所示,則通知其所有觀察者,然后調(diào)用 clearChanged 方法以指示該對象不再更改。 |
| protected void | setChanged() | 將此 Observable 對象標(biāo)記為已更改; hasChanged 方法現(xiàn)在將返回 true。 |
| 從類 java.lang.Object 繼承的方法 |
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
構(gòu)造函數(shù)詳細(xì)信息
Observable
public Observable()
構(gòu)造一個具有零個觀察者的 Observable。
方法詳情
addObserver
public void addObserver(Observer o)
將一個觀察者添加到該對象的觀察者集合中,前提是它與集合中的某個觀察者不同。 未指定將通知傳遞給多個觀察者的順序。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 要添加的觀察者。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果參數(shù) o 為空。 |
deleteObserver
public void deleteObserver(Observer o)
從該對象的觀察者集中刪除一個觀察者。 將 null 傳遞給此方法將無效。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 要刪除的觀察者。 |
notifyObservers
public void notifyObservers()
如果該對象發(fā)生了變化,如 hasChanged 方法所示,則通知其所有觀察者,然后調(diào)用 clearChanged 方法以指示該對象不再更改。
每個觀察者都有它的更新方法,它使用兩個參數(shù)調(diào)用:這個可觀察對象和 null。 換句話說,這個方法等價于:
notifyObservers(null)
notifyObservers
public void notifyObservers(Object arg)
如果該對象發(fā)生了變化,如 hasChanged 方法所示,則通知其所有觀察者,然后調(diào)用 clearChanged 方法以指示該對象不再更改。
每個觀察者都有自己的 update 方法,使用兩個參數(shù)調(diào)用:這個 observable 對象和 arg 參數(shù)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| arg | 任何對象 |
deleteObservers
public void deleteObservers()
清除觀察者列表,使該對象不再有任何觀察者。
setChanged
protected void setChanged()
將此 Observable 對象標(biāo)記為已更改; hasChanged 方法現(xiàn)在將返回 true。
clearChanged
protected void clearChanged()
指示此對象不再更改,或者它已經(jīng)通知所有觀察者其最近的更改,因此 hasChanged 方法現(xiàn)在將返回 false。 該方法由 notifyObservers 方法自動調(diào)用。
hasChanged
public boolean hasChanged()
測試此對象是否已更改。
返回:
當(dāng)且僅當(dāng) setChanged 方法的調(diào)用時間比此對象上的 clearChanged 方法更近時才為 true; 否則為 false。
countObservers
public int countObservers()
返回此 Observable 對象的觀察者數(shù)量。
返回:
此對象的觀察者數(shù)量。
網(wǎng)頁名稱:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSObservable
文章URL:http://m.5511xx.com/article/dpsgcoj.html


咨詢
建站咨詢
