
現在ジェネリクスについて勉強中です。
引数として渡された2つのSetから同じ要素の数を順番に数えるメソッド
countSameElementsを作りました。
このメソッドの引数にSet<T>と出来ない理由を教えてください。
<?>と<T>の違いがわかりません。よろしくおねがいします。
public class Generics { public static void main(String[] args) { Set<Integer> set1 = new LinkedHashSet<>(); Set<Integer> set2 = new HashSet<>(); set1.add(1); set1.add(2); set1.add(4); set1.add(3); set2.add(5); set2.add(2); set2.add(1); set2.add(3); Generics.countSameElements(set1, set2); } //ここで引数をSet<T> a, Set<T> bにはできない public static int countSameElements(Set<?> a, Set<?> b) { int result = 0; for (Object object : b) { if (a.contains(object)) { result++; } } return result; } }

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/06/27 02:55 編集