|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface NotificationEmitter
由發出 Notifications 的 MBean 實作的介面。它允許某個偵聽器向該 MBean 註冊為通知偵聽器。
MBean 發出通知時,它會考慮每個已經使用 addNotificationListener
添加、且之後沒有使用 removeNotificationListener
移除的偵聽器。如果該偵聽器同時提供一個過濾器,且過濾器的 isNotificationEnabled
方法返回 false,則忽略該偵聽器。否則,將利用通知調用偵聽器的 handleNotification
方法,同時向 addNotificationListener
提供 handback 物件。
如果多次添加同一個偵聽器,則認為該偵聽器被添加的次數等於實際被添加的次數。在添加相同的偵聽器的同時使用不同的過濾器或 handback 物件常常很有用。
根據調用過濾器和偵聽器方法的執行緒,此介面的實作可能有所不同。
如果過濾器或偵聽器的方法調用拋出 Exception
,則該異常不應該阻止調用其他偵聽器。但是,如果方法調用拋出 Error
,則建議在此處停止對通知的處理,如果 Error
可以傳播到通知的發送方,則更應該這樣做。
新程式碼應該優先使用此介面,而不是 NotificationBroadcaster
介面。
應該注意保持此介面的實作與 NotificationBroadcaster
的實作之間的同步。需要特別指出的是,讓某個實作在調用偵聽器時持有鎖定不是一個好主意。偵聽器列表在排程通知時可能發生更改,處理這種可能性的一個好的策略是對列表使用 CopyOnWriteArrayList
。
方法摘要 | |
---|---|
void |
removeNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback)
從此 MBean 移除一個偵聽器。 |
從介面 javax.management.NotificationBroadcaster 繼承的方法 |
---|
addNotificationListener, getNotificationInfo, removeNotificationListener |
方法詳細資訊 |
---|
void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException
從此 MBean 移除一個偵聽器。該 MBean 必須有一個與給定 listener
、filter
和 handback
參數完全比對的偵聽器。如果有多個此類別偵聽器,則只移除一個偵聽器。
當且僅當在要移除的偵聽器中 filter
和 handback
參數為 null 時,這兩個參數才可以為 null。
listener
- 以前添加到此 MBean 中的偵聽器。filter
- 添加偵聽器時指定的過濾器。handback
- 添加偵聽器時指定的回送。
ListenerNotFoundException
- 如果沒有在該 MBean 中註冊偵聽器,或者沒有用給定的過濾器和回送註冊它。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。