我需要处理两种不同类型的事件,但遇到以下问题:
EventListener 接口不能使用不同的参数多次实现:EventListener<PriceUpdate>
and EventListener<OrderEvent>
.
有一个优雅的解决方案吗?
public interface EventListener <E> {
public void handle(E event);
}
public interface PriceUpdateEventListener extends EventListener<PriceUpdate> {
}
public interface OrderEventListener extends EventListener<OrderEvent> {
}
public class CompositeListener implements OrderEventListener,PriceUpdateEventListener {
....
}
现实中只有一种handle(Object)方法。你实际上写的是一样的
public class CompositeListener implements EventListener {
public void handle(Object event) {
if (event instanceof PriceUpdate) {
///
} else if (event instanceof OrderEvent) {
///
}
}
}
如果没有这种检查逻辑,您在任何情况下都无法有效地调用事件侦听器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)