When I tried to do Controller so, I`ve got a message: Listener cannot be inherited with different arguments AlfaMsg and GammaMsg. I read some patterns, but it does not help me. How I can realize this idea?
public abstract class Msg {
}
public class AlfaMsg extends Msg{
}
public class GammaMsg extends Msg{
}
public interface Listener<T extends Msg> {
void update(String message, T msg);
}
public interface ListenerAlfa extends Listener<AlfaMsg> {
@Override
void update(String message, AlfaMsg deviceMessage);
}
public interface ListenerGamma extends Listener<GammaMsg> {
@Override
void update(String message, GammaMsg deviceMessage);
}
public class Controller implements ListenerAlfa, ListenerGamma{
@Override
void update(String message, AlfaMsg deviceMessage){
}
@Override
void update(String message, GammaMsg deviceMessage){
}
}