Подскажите пожалуйста почему выполняется второй метод (хотя он стринговый), и при компиляции ругается на преобразование:
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
Код:
public static void main(String[] args) {
List<Integer> integerList = Arrays.asList(1, 2, 3);
Gen gen = new Gen();
gen.m(integerList);
}
static class Gen<T> {
<T> void m(Collection<T> collection) {
for (T s : collection) {
System.out.println(s + " Дженерик");
}
}
<T> void m(List<String> list) {
for (String s : list) {
System.out.println(s+ " String");
}
}
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей