Java 10: вывод типов локальных переменных (var) — руководство
JEP 286 — Local Variable Type Inference
Самое заметное изменение языка в Java 10 — возможность объявлять локальные переменные через var без явного указания типа. Компилятор выводит тип из инициализатора. Ограничение: только для локальных переменных.
Старый способ
String name = "Welcome to tutorialspoint.com";
Новый способ (Java 10+)
var name = "Welcome to tutorialspoint.com";
Компилятор определяет тип String по значению.
Важные нюансы
- Нет вывода типов для полей класса, параметров методов, возвращаемых значений.
- Переменная обязана быть проинициализирована при объявлении, иначе ошибка компиляции.
- Доступно внутри инициализатора циклов (
for (var i = 0; ...)). - Нет накладных расходов во время выполнения — типы определяются на этапе компиляции.
- Тип не меняется динамически: после вывода он фиксирован.
- Упрощает громоздкий код:
var map = new HashMap<Integer, String>();вместоMap<Integer, String> map = new HashMap<>();
Пример
import java.util.List;
public class Tester {
public static void main(String[] args) {
var names = List.of("Julie", "Robert", "Chris", "Joseph");
for (var name : names) {
System.out.println(name);
}
System.out.println();
for (var i = 0; i < names.size(); i++) {
System.out.println(names.get(i));
}
}
}
Вывод
Julie
Robert
Chris
Joseph
Julie
Robert
Chris
Joseph
java
- Примитивные типы данных в Java: полное руководство с примерами
- Освоение операторов Java: типы, синтаксис и практические примеры
- Комментарии в Java: типы, использование и лучшие практики
- Освоение улучшенного цикла for в Java: синтаксис, примеры и лучшие практики
- Освоение строк в Java: создание, методы и лучшие практики
- Интерфейсы в Java: концепции, реализация и лучшие практики
- Try-with-resources в Java: автоматическое управление ресурсами
- Аннотации в Java: типы, размещение и практические примеры
- Освоение приведения типов в Java: от расширения к сужению и далее
- Ключевое слово static в Java: переменные, методы и блоки — практические примеры