Blochの効果的なJavaのジェネリックセクション(誰でも簡単に利用できる「無料」の章:http : //java.sun.com/docs/books/effective/generics.pdf)で、彼は次のように述べています。
型パラメーターがメソッド宣言に1回だけ出現する場合は、ワイルドカードに置き換えます。
(そのPDFの31-33ページを参照してください)
問題の署名は次のとおりです。
public static void swap(List<?> list, int i, int j)
対
public static void swap(List<E> list, int i, int j)
次に、実際の型パラメーターを指定した静的なプライベート「ヘルパー」関数を使用して作業を実行します。ヘルパー関数のシグネチャは、2番目のオプションのシグネチャとまったく同じです。
とにかくワイルドカードを使用して作業を完了する必要がないので、なぜワイルドカードが望ましいのですか?この場合、彼はリストを変更していて、無制限のワイルドカードを使用してコレクションに追加できないので、なぜそれを使用するのですか?