Вопрос может показаться крайне простым, однако, самую очевидную информацию, порой, бывает сложно "загуглить". В пример предложу инициацию ArrayList:
ArrayList<String> someList = new ArrayList<>();
Стоит ли указывать тип хранимых в списке объектов еще и в правой части выражения, в угловых скобках? Какова роль такой двойной инициализации. Часто, в чужом коде, вижу и подобную запись:
ArrayList<String> someList = new ArrayList<String>();
Однако, IDE подчеркивает второй "String" серым цветом, и указывает, что тип можно второй раз не указвать вообще. Но, если такая возможность существует, значит бывают ситуации, когда это необходимо. Прошу объяснить, когда.
Это так называемый оператор diamond (бриллиант, алмаз). Введен в Java SE 7. Он называется так, потому что чем-то похож на камень: <>.
до Java 7
ArrayList<String> someList = new ArrayList<String>();
после Java 7
ArrayList<String> someList = new ArrayList<>();
Включение оператора алмазов (<>) в Java SE 7 означает, что код, который создает универсальные классы может быть более компактным и удобочитаемым.
Так что не обязательно указывать тип хранимых в списке объектов еще и в правой части выражения, в угловых скобках.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Помогите hibernate не создает таблицыВозможно нарушен мапинг!