新聞中心
Observable

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


咨詢
建站咨詢
