Generics Tutorialを経由して、オブジェクトを配列からコレクションにコピーしています。ジェネリックス:コレクションのパラメータとしてObjectを使用できないのはなぜですか?
コード
static void fromArrayToCollection(Object[] a, Collection<?> c) {
for (Object o : a) {
c.add(o); // Compile time error
}
}
私はコレクションにオブジェクトをパラメータとして渡すことができ、それは何の問題もなく動作するはずですが、チュートリアルでは、
が今では、あなたが避けるために学んできたであろうと言うことを考えていますコレクションパラメータの型としてCollectionを使用しようとする初心者の間違い。
なぜObjectをパラメータ型としてCollectionに渡すのが正しい方法ではないのですか?更新 :
static void fromArrayToCollection(Object[] a, Collection<Object> c) {
for (Object o : a) {
c.add(o); // Compile time error
}
}
genericが存在する理由の1つは、コレクション内のオブジェクトを使用する必要がないためです。 –