Curinga Java delimitada no tipo de retorno
Eu li em vários lugares, incluindoaqu que ter um curinga limitado em um tipo de retorno de método é uma má ideia. No entanto, não consigo encontrar uma maneira de evitá-lo com a minha turma. Estou esquecendo de algo
A situação é mais ou menos assim:
class EnglishReaderOfPublications {
private final Publication<? extends English> publication;
EnglishReaderOfPublications(Publication<? extends English> publication) {
this.publication = publication;
}
void readPublication() {
publication.omNomNom();
}
Publication<? extends English> getPublication() {
return publication;
}
}
Em resumo, uma classe que eu quero poderconsumi qualquer publicação que esteja em alguma variante do inglês. A turma precisa permitir o acesso à publicação de fora, mas, idealmente, os chamadores degetPublication
não desejaria o resultado como um curinga limitado. Eles ficariam felizes comPublication<English>
.
Existe uma maneira de contornar isso?