|
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。