Как мы можем использовать Java 7 Тип вывода для создания общего экземпляра функция? Какая польза от использования этого нового стиля?Java7 Тип вывода для создания общего экземпляра?
ответ
Это также известно как алмазный оператор. Это избавляет вас от необходимости писать аргументы родового типа при создании типичного типа. Аргументы типа типизированного типичного типа выводятся из аргументов типа, присутствующих в объявлении.
ArrayList<String> list = new ArrayList<>();
Вместо:
ArrayList<String> list = new ArrayList<String>();
OK нам не нужно писать см. Обе стороны оператора eqal –
Точно только левая часть инструкции должна указывать аргументы типа '
Это просто не печатать.
От 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.
Вы имеете в виду, что в правой стороне нужен только оператор бриллианта? –
Да. Вот и все. Вам не нужно повторять типы дважды в одном выражении. – Thilo
ОК алмаз все еще нужен только тип будет удален –
No. Синтаксис алмаз просто сокращенная в кодирования/ввода. Эти два одинаковые
List<String> a = new ArrayList<String>();
List<String> a = new ArrayList<>();
Они обрабатываются одинаково для процесса компиляции, намеки на компилятор. Даже до стирания стилей они обрабатываются одинаково. Это просто удобство для вас.
Вы прочитали документацию? http://docs.oracle.com/javase/tutorial/java/generics/genTypeInference.html –