com.supermap.services.event
类 EventUtils
- java.lang.Object
-
- com.supermap.services.event.EventUtils
-
public final class EventUtils extends java.lang.Object
事件消息工具类。 用于获取发送消息的委托对象,或者注册消息监听器。
public class EventUtilsTest { public static interface TestListener { void method(); } public static class TestListenerImplOne implements TestListener { public boolean invoked = false; public void method() { invoked = true; System.out.println("TestListenerImplOne.method() invoked"); } } public static class TestListenerImplTwo implements TestListener { public boolean invoked = false; public void method() { invoked = true; System.out.println("TestListenerImplTwo.method() invoked"); } } public static void main(String[] args) { TestListenerImplOne listener1 = new TestListenerImplOne(); EventUtils.registerEventListener(TestListener.class, listener1); TestListenerImplTwo listener2 = new TestListenerImplTwo(); EventUtils.registerEventListener(TestListener.class, listener2); TestListener sender = EventUtils.getDelegate(TestListener.class); sender.method(); while(!(listener1.invoked && listener2.invoked)) { Thread.yield(); } //程序将输出 //TestListenerImplTwo.method() invoked //TestListenerImplOne.method() invoked //或者 //TestListenerImplOne.method() invoked //TestListenerImplTwo.method() invoked // //listener1和listener2被调用的顺序和时间都是不确定的。 EventUtils.dipose(); } }
-
-
构造器概要
构造器 构造器和说明 EventUtils()
-
方法概要
方法 限定符和类型 方法和说明 static void
dipose()
销毁发送消息的线程池。static <T> T
getDelegate(java.lang.Class<T> eventType)
获取一个用于发送消息的委托对象。static void
init()
初始化发送消息的线程池。static <T> void
registerEventListener(java.lang.Class<T> eventType, T listener)
注册一个消息监听器。static <T> void
removeListener(java.lang.Class<T> eventType, T listener)
-
-
-
方法详细资料
-
registerEventListener
public static <T> void registerEventListener(java.lang.Class<T> eventType, T listener)
注册一个消息监听器。
- 参数:
eventType
- 注册的消息监听器接口类型。该参数必须是一个接口类型,否则该方法将不做任何操作。listener
- 接收消息的实例。
-
removeListener
public static <T> void removeListener(java.lang.Class<T> eventType, T listener)
-
getDelegate
public static <T> T getDelegate(java.lang.Class<T> eventType)
获取一个用于发送消息的委托对象。 该函数要求传入一个接口类型为参数,返回的对象是传入的接口类型的实例。 可以直接在返回的实例上调用相应的方法以发送消息。 但是只能调用返回值为void的方法,否则程序的行为是不确定的。
- 参数:
eventType
- 需要获取的消息接口类型,该参数必须是一个接口类型。- 返回:
- 一个发送消息的委托对象。
-
dipose
public static void dipose()
销毁发送消息的线程池。
-
init
public static void init()
初始化发送消息的线程池。 默认情况下不需要调用,只有调用了
dipose()
方法之后,还想再正常使用时,才需要调用这个方法。
-
-