Codec в методе main обращение к c.getNames() не сможет вывести правильный тип возвщаемой коллекции?
Как только добавляешь любой дженерик, хоть Codec<?> тайп инференс для getNames() тут же начинает работать правильно.
class Scratch {
public static void main(String[] args) {
Codec c = new ACodec();
List names = c.getNames();
}
}
interface Codec<T> {
T forCodec(Codec c);
default List<String> getNames() {
return Arrays.asList("Hello", "world");
}
}
Потому что raw-типы — легаси и не стоит их использовать никогда. Они ломают всё.
Обсуждают сегодня