实现多个通用接口

DD.*_*DD. 5 java generics

我需要处理两种不同类型的事件,但我遇到了以下问题:

使用不同的参数不能多次实现接口EventListener:EventListener<PriceUpdate>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 {
....
}
Run Code Online (Sandbox Code Playgroud)

Pet*_*rey 6

实际上只有一个句柄(Object)方法.你实际上是这样写的

public class CompositeListener implements EventListener {
    public void handle(Object event) {
        if (event instanceof PriceUpdate) {
            ///
        } else if (event instanceof OrderEvent) {
            ///
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果没有此检查逻辑,则无论如何都无法有效地调用事件侦听器.