メソッドから返されたArrayList
オブジェクトを参照でキャストしたい場合:List
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
メソッドからの戻り値の型はオブジェクトへasList
の参照です。つまり、List
参照にArrayList
キャストできArrayList
ます。そのような :
String[] colors = { "black", "blue", "yellow" };
ArrayList<String> links = (ArrayList<String>) Arrays.asList(colors) ;
しかし、このコードは実行時エラーを起こしました:
スレッド「メイン」の例外 java.lang.ClassCastException: java.util.Arrays$ArrayList は java.util.ArrayList にキャストできません
なぜそれが起こったのですか?