hereなどのさまざまな場所で、メソッドの戻り値の型にバインドされたワイルドカードを持つことは悪い考えです。しかし、私はクラスでそれを避ける方法を見つけることができません。何か不足していますか? は英語にはいくつかの変種であるあらゆる出版物を消費するように要約する戻り値の型でJava境界付きワイルドカード
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>
に満足しています。
これには方法がありますか?
Joshua Blochの「Effective Java」の項目28では、「戻り値の型としてワイルドカード型を使用しないでください。 –