Вывод типов с var
Использовать var для вывода типов локальных переменных — меньше шума, та же безопасность.
Сравнение кода
✕ Java 8
Map<String, List<Integer>> map =
new HashMap<String, List<Integer>>();
for (Map.Entry<String, List<Integer>> e
: map.entrySet()) {
// verbose type noise
}
✓ Java 10+
var map = new HashMap<String, List<Integer>>();
for (var entry : map.entrySet()) {
// clean and readable
}
Заметили проблему в этом коде? Сообщите нам.
Почему современный подход лучше
Меньше шаблонного кода
Не нужно повторять сложные обобщённые типы по обе стороны присваивания.
Лучшая читаемость
Фокус на именах переменных и значениях, а не на объявлениях типов.
По-прежнему типобезопасно
Компилятор выводит и применяет точный тип во время компиляции.
Старый подход
Явные типы
Современный подход
Ключевое слово var
Начиная с JDK
10
Сложность
Начинающий
Поддержка JDK
Вывод типов с var
Доступно
Доступно в JDK 10 (март 2018)
Как это работает
Начиная с Java 10 компилятор выводит типы локальных переменных из правой части выражения. Это уменьшает визуальный шум без ущерба для типобезопасности. var рекомендуется там, где тип очевиден из контекста.
Связанная документация
Доказательство