2016-05-16 2 views
3

Давайте предположим, что у меня есть переменная: новый ArrayList <Class>() или новый ArrayList <>() в Java?

List<String> myList; 

Есть ли разница между этими двумя линиями?

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

Я думаю, и делает то же самое на компиляции, но все же я не уверен.

Заранее спасибо

ответ

3

Это называется Тип вывода для генериков и был добавлен в Java 7.

Обе версии кода вы написали то же самое.

Есть несколько предостережений вы можете прочитать о здесь: https://docs.oracle.com/javase/8/docs/technotes/guides/language/type-inference-generic-instance-creation.html

+2

Пожалуйста, приложить усилия, чтобы найти дубликат, прежде чем ответить. Я уверен, что вы уже видели этот вопрос. –

+0

Алмазный оператор .. Я не знал, что он считается оператором! Спасибо за ссылку (Y) – iGoodie

+0

Я искал это @SotiriosDelimanolis. Я не мог найти никакого результата, потому что я даже не знал, что <> считается оператором. – iGoodie