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) 
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 构造器详细资料

      • EventUtils

        public EventUtils()
        
    • 方法详细资料

      • 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()方法之后,还想再正常使用时,才需要调用这个方法。