Почему этот код с обобщениями генерирует исключение ClassCastException в Java 11? - PullRequest
0 голосов
/ 23 января 2019

Код ниже успешно в 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 {}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...