Olá pessoal,
Gostaria de esclarecer uma dúvida sobre a seguinte situação:
Tenha a seguinte hierarquia de classes no model:
public abstract class Mensagem {
}
public class Email extends Mensagem{
}
public class Sms extends Mensagem{
}
E a outra hierarquia de herança utilizando Generics:
public interface Emissor<T extends Mensagem> {
public void enviar(List<T> lista);
}
public class EmissorDeEmail implements Emissor<Email> {
@Override
public void enviar(List<Email> lista) {
// TODO Auto-generated method stub
}
}
public class EmissorDeSms implements Emissor<Sms>{
@Override
public void enviar(List<Sms> lista) {
// TODO Auto-generated method stub
}
}
Eu imaginei que poderia utilizar essas classes da seguinte forma:
public static void main(String[] args) {
List<Sms> lista = new ArrayList<Sms>();
Emissor<Mensagem> emissor = new EmissorDeSms();
emissor.enviar(lista);
}
Mas o compilador indicar erro na hora de instanciar o emissor, com a seguinte mensagem:
Multiple markers at this line
- Type mismatch: cannot convert from EmissorDeSms to
Emissor<Mensagem>
Não sei se formulei os generics de forma errada. Por isso gostaria de ajuda para verificar se é possível fazer dessa forma e onde posso está errando neste código.
Desde já agradeço.
Att;