этот код компилируется в порядке и при выполнении произведет «004b», как это происходит, почему он не создает исключение classcastException.java Generics проблема компиляции устаревания
public static void append(List list) {
list.add("004b");
}
public static void main(String[] args) {
List<Integer> intList = new ArrayList<Integer>();
append(intList);
System.out.println(intList.get(0));
}
Я бы не сказал, что он компилируется отлично - компилятор должен дать вам предупреждение об использовании типа сырого списка. Если вы не учтете это предупреждение, ну, вы программист :) – extraneon