Странное поведение компилятора в классах с дженериксами
Столкнулся с такой особенностью компилятора. Пишу такой код:
При компиляции вылетает ошибка: incompatible types found: java.lang.Object required java.lang.String
Меняю так:
Все работает.
Меняю так:
Тоже все в порядке.
Кто нибудь знает, почему так происходит?
public static void main(String[] args) {
class A<B> {
List<String> getAs() { return null; };
}
for (String a : new A().getAs()) {
}
}
При компиляции вылетает ошибка: incompatible types found: java.lang.Object required java.lang.String
Меняю так:
public static void main(String[] args) {
class A {
List<string> getAs() { return null; };
}
for (String a : new A().getAs()) {
}
}
Все работает.
Меняю так:
public static void main(String[] args) {
class A<B> {
List<String> getAs() { return null; };
}
for (String a : new A<Object>().getAs()) {
}
}
Тоже все в порядке.
Кто нибудь знает, почему так происходит?
