Параметры ограниченного типа в java 8 и java более 10 - PullRequest
0 голосов
/ 26 февраля 2020

Интересно, какой фактор ниже не работает в java 8, но в java 10 !

List.of(A.HI, B.HELLO)

С java 8, моя IDE предупреждает меня, что

при условии, что тип A или B не является обязательным типом

Но с java 10 он работает!

Это из-за вывода типа локальной переменной в Java 10?

Я хочу найти соответствующие документы или сообщения об этом . Спасибо.

public static void main(String[] args) {

    /******** does not work in both java 8 and 10 ********/
    Collection<? extends I> list = new ArrayList<>();
    list.add(A.HI);
    list.add(B.HELLO);

    /********* does work in java10  ********/
    Collection<? extends I> list = List.of(A.HI, B.HELLO);
}

interface I {
}
enum A implements I {
    HI
}
enum B implements I {
    HELLO
}
...