Код ниже успешно в Java 8, но выдает исключение ClassCastException в Java 11. Почему изменилось поведение?
Я не смог найти связанных изменений в наборах функций OpenJDK Java 9, Java 10 или Java 11.
public class GenericsExample {
public static void main(String[] args) {
Set<Car> set = new HashSet<>();
set.add(getAnimal());
}
static <T extends Animal> T getAnimal() {
return (T) new Animal() {};
}
interface Animal {}
class Car {}
}