2015-09-11 2 views
0

как и в названии, на Java, есть ли разница между этими двумя утверждениями?В чем разница между "ArrayList <String> = new ArrayList <>()" и "ArrayList <String> = новый ArrayList <String>()"?

Обычно я могу видеть оба утверждения обоих. Поэтому я полагаю, что нет никакой разницы. Но могли бы вы помочь подтвердить и объяснить, почему они идентичны?

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

Спасибо!

+0

они идентичны только двум способам написания. – Panther

+1

Привет, все, я хочу поблагодарить всех вас за ответы! Просто отметьте первый как приемлемый ответ, но я думаю, что все ваши ответы ясны и правильны одинаково. –

ответ

1

Они идентичны. new ArrayList<String>(); требовалось до JDK 7. В JDK 7 они представили «алмазный оператор», где тип выводится.

Таким образом, если вы используете JDK 7+ вы можете просто использовать new Arraylist<>()

Вы можете увидеть это в Java Language Specification под экземпляром класса Создания выражений, или искать «Алмазный оператор»

0

В java 7 и более поздних версиях нет разницы. Последнее считается более кратким.
Оператор так называемого алмазного оператора <> помогает здесь для типа, который должен быть выведен.

Смежные вопросы