Использование List.of () в шаблоне посетителя - PullRequest
1 голос
/ 26 марта 2019

Я просматривал пример шаблона посетителя из Википедии, и в качестве примера приведен небольшой фрагмент кода. Вы можете найти его здесь .

Если вы прокрутите пример раздела Java, конструктор Car() использует что-то под названием List.of().

Согласно документации оракула , List.of () создает неизменный список. Похоже, тот же фрагмент кода не работает в моем личном рабочем пространстве IntelliJ, и не распознается List.of(). Хотя, если бы я мог заменить его изменяемым списком - что-то вроде -

this.elements = new ArrayList<CarElement>();
this.elements.add(new Wheel("front left"));
this.elements.add(new Wheel("front right"));
this.elements.add(new Wheel("back left"));
this.elements.add(new Wheel("back right"));
this.elements.add(new Body());
this.elements.add(new Engine());

Я мог бы получить тот же вывод. Что-то не так я делаю? Это как-то связано с моей версией JDK? Моя версия JDK - 1.8.0_45.

1 Ответ

2 голосов
/ 26 марта 2019

Это потому, что в JDK 9 была введена List::of. Так как вы компилируете в JDK 8, это не будет работать.

Параметры типа: E - тип элемента списка Параметры: elements - элементы, которые должны содержаться в списке Возвращает: Список, содержащий указанные элементы Выдает: NullPointerException - если элемент нулевой или массив пустой С: 9

Обратите внимание на нижнюю часть документов, которые у них есть Since: <version>.Это скажет вам, какая версия метода была добавлена ​​в

...