public interface NotificationBroadcaster
通过MBean实现的接口发出通知。它让听者是MBean作为通知侦听器注册。
当MBean发出通知,它认为每个听众已加入addNotificationListener
不随后删除removeNotificationListener
。如果过滤器提供了听者,如果过滤器的isNotificationEnabled
方法返回false,听众被忽略。否则,听众的handleNotification
方法被调用的通知,以及handback对象提供了addNotificationListener
。
如果同一个侦听器被添加不止一次,它被添加的次数被认为是。它添加不同的过滤器或handback对象相同的听众往往是有益的。
此接口的实现可能会对有关线程的不同,其中的筛选器和侦听器的方法被调用。
如果一个过滤器或听众抛出一个异常
方法调用,那么异常不应该阻止其他听众被调用。然而,如果方法调用抛出一个Error
,然后建议通知停止在这一点上处理,如果它是可能的传播Error
的通知发件人,这是应该做的。
新的代码应该使用NotificationEmitter
接口代替。
这个接口和NotificationEmitter
实现应该小心同步。特别是,它是不是一个好主意的实现,以保持任何锁,而它调用一个侦听器。应对听众的名单可能会同时通知被派往改变的可能性,一个好的策略是使用一个CopyOnWriteArrayList
此列表。
Modifier and Type | Method and Description |
---|---|
void |
addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
将侦听器添加到这个MBean。
|
MBeanNotificationInfo[] |
getNotificationInfo()
返回一个数组表示,每个通知MBean可能发送的通知和通知类型的java类的名称。
|
void |
removeNotificationListener(NotificationListener listener)
从这个MBean移除侦听器。
|
void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException
listener
-监听器对象将处理由电视台发出的通知。
filter
-滤波对象。如果过滤器为空,则在处理通知之前没有进行过滤。
handback
-一个不透明的物体被送回听者当通知发出。此对象不能被通知广播对象使用。它应该是怨恨与通知的通知不变。
IllegalArgumentException
侦听器参数为空。
removeNotificationListener(javax.management.NotificationListener)
void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
listener
-听者以前添加到这个MBean。
ListenerNotFoundException
-听者不是MBean注册。
addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
,
NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
MBeanNotificationInfo[] getNotificationInfo()
返回一个数组表示,每个通知MBean可能发送的通知和通知类型的java类的名称。
对于MBean发送该数组中没有描述的通知不违法。然而,这个MBean服务器的一些客户可能取决于阵列完成其正确运作。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.