上級 › raw type とワイルドカードの使い分け › パターン3
raw type とワイルドカードの使い分け
型引数を省くと型安全が失われます。
1 public class Main { 2 static <T> T first(____________________<T> list) { ^ 3 return list.get(0); 4 } 5 public static void main(String[] args) { 6 System.out.println(first(java.util.List.of("a"))); 7 } 8 }
Main.java:6: error: method first in class Main cannot be applied to given types;
required: ArrayList<T>
found: List<String>
reason: cannot infer type-variable(s) T
空欄を埋めてビルドを通す
引数は最も広い型で受けるのが原則です。ArrayListで受けるとListしか持たない呼び出し側が渡せません。
次の問題