2013-07-24 3 views

ответ

5

Это также известно как алмазный оператор. Это избавляет вас от необходимости писать аргументы родового типа при создании типичного типа. Аргументы типа типизированного типичного типа выводятся из аргументов типа, присутствующих в объявлении.

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

Вместо:

ArrayList<String> list = new ArrayList<String>(); 
+0

OK нам не нужно писать см. Обе стороны оператора eqal –

+0

Точно только левая часть инструкции должна указывать аргументы типа '' , а правая сторона будет выведена с левой стороны. –

1

Это просто не печатать.

От the docs:

Для примера рассмотрим следующую переменную декларацию:

Map<String, List<String>> myMap = new HashMap<String, List<String>>(); 

В Java SE 7, вы можете заменить параметризованный тип конструктора с пустым набор параметров типа (<):

Map<String, List<String>> myMap = new HashMap<>(); 

К сожалению, you still have to type the diamond.

+0

Вы имеете в виду, что в правой стороне нужен только оператор бриллианта? –

+0

Да. Вот и все. Вам не нужно повторять типы дважды в одном выражении. – Thilo

+0

ОК алмаз все еще нужен только тип будет удален –

2

No. Синтаксис алмаз просто сокращенная в кодирования/ввода. Эти два одинаковые

List<String> a = new ArrayList<String>(); 
List<String> a = new ArrayList<>(); 

Они обрабатываются одинаково для процесса компиляции, намеки на компилятор. Даже до стирания стилей они обрабатываются одинаково. Это просто удобство для вас.