В чем разница между «новым ArrayList <ClassName>()» и «новым ArrayList <> ()» при создании ArrayList? - PullRequest
0 голосов
/ 02 мая 2018

Вот конкретный пример:

  ArrayList<String> x = new ArrayList<String>();
  ArrayList<String> y = new ArrayList<>();

Оба способа работают нормально. В чем разница?

Ответы [ 3 ]

0 голосов
/ 02 мая 2018

Если я правильно помню из моих предыдущих классов программирования, это пример синтаксической функции сахара , которая была добавлена ​​в более новую версию Java. Java выводит ваш тип String при создании экземпляра y.

0 голосов
/ 02 мая 2018

При строительстве:

new ArrayList<>();

Вы указываете компилятору Infer тип с левой стороны.

Сейчас:

new ArrayList<String>();

Явно объявляет тип, который вы собираетесь использовать.

0 голосов
/ 02 мая 2018

Нет никакой разницы, я могу назвать это новой функцией.

Нам пришлось указать аргумент типа перед Java 7:

ArrayList<String> x = new ArrayList<String>(); 

Из Java 7 мы можем просто использовать Diamond:

ArrayList<String> y = new ArrayList<>();

В этом и заключается разница, разработчики Java хотят сделать это проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...