我已经在包括这里在内的各个地方读到,在方法返回类型中使用有界通配符是一个坏主意。但是,我找不到在课堂上避免它的方法。我错过了什么吗?
情况看起来像这样:
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;
}
}
总之,我希望能够使用任何英语变体的出版物的课程。该类需要允许从外部访问发布,但理想情况下,调用者getPublication
不希望将结果作为有界通配符。他们会很高兴的Publication<English>
。
有办法解决这个问题吗?