Почему println
печатает "tom" и не показывает какое-либо исключение во время выполнения после каста на List<Integer>
, в то время как он не может напечатать значение 1 после кастинга до List<String>
?
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String args[]) {
List list = Arrays.asList(1, "tom");
System.out.println(((List<Integer>) list).get(1));
// "tom"
System.out.println(((List<String>) list).get(0));
// ClassCastException: Integer cannot be cast to String
}
}