Eclipse e4 EventBroker Map<String, String> NullPointer
Eclipse e4 EventBroker Map<String, String> NullPointer
我需要用eclipse e4框架的EventBroker发送一个事件。除地图实例外,一切正常(字符串、列表...)。
Map<String, String> test = new LinkedHashMap<>();
test.put("test1", "1");
test.put("test2", "2");
broker.send(EventConstants.EXTENDED_SEARCH_ACTICE_HEADER, test);
接收部分
@Inject
@Optional
public void onExtendedSearchActiveHeaderEvent(
@UIEventTopic(EventConstants.EXTENDED_SEARCH_ACTICE_HEADER) Map<String, String> test) {
System.out.println(test.size());
}
调度事件时出现异常org.osgi.service.event.Event
随后 - 当然 - 一个 NullPointer 异常
事件代理 send
(和 post
)方法对 Map
参数进行特殊处理,并期望它包含完整的事件。这会产生副作用,即 @UIEventTopic
认为没有任何 Map
数据。
处理这个用途:
Map<String, Object> eventMap = new HashMap<String, Object>();
// Your map goes under the `IEventBroker.DATA` key
eventMap.put(IEventBroker.DATA, test);
broker.send(EventConstants.EXTENDED_SEARCH_ACTICE_HEADER, eventMap);
我需要用eclipse e4框架的EventBroker发送一个事件。除地图实例外,一切正常(字符串、列表...)。
Map<String, String> test = new LinkedHashMap<>();
test.put("test1", "1");
test.put("test2", "2");
broker.send(EventConstants.EXTENDED_SEARCH_ACTICE_HEADER, test);
接收部分
@Inject
@Optional
public void onExtendedSearchActiveHeaderEvent(
@UIEventTopic(EventConstants.EXTENDED_SEARCH_ACTICE_HEADER) Map<String, String> test) {
System.out.println(test.size());
}
调度事件时出现异常org.osgi.service.event.Event
随后 - 当然 - 一个 NullPointer 异常
事件代理 send
(和 post
)方法对 Map
参数进行特殊处理,并期望它包含完整的事件。这会产生副作用,即 @UIEventTopic
认为没有任何 Map
数据。
处理这个用途:
Map<String, Object> eventMap = new HashMap<String, Object>();
// Your map goes under the `IEventBroker.DATA` key
eventMap.put(IEventBroker.DATA, test);
broker.send(EventConstants.EXTENDED_SEARCH_ACTICE_HEADER, eventMap);