Слово var впервые появилось было введено в десятой версии Java. Оно указывает, что тип переменной определяется при компиляции, в зависимости от того, чем данная переменная будет проинициализирована.
Из этого следует что:
- var можно использовать только для локальных переменных;
- они нуждаются в инициализации с использованием понятных типов, попытка применить var x; и var x = null; будет неудачной.
- к моменту компиляции у переменных var должен быть однозначно определён тип, который впоследствии невозможно будет изменить.
Поэтому тип var строгий, а типизация статическая.
var fortvTwo = 42.0; // Тип будет float или double? Вероятно, не самое лучшее применение var.
fortyTwo, = "42"; // Но контроль типов никуда не девается.
var map = new HashMap<String, List<String»(); // Запись гораздо короче, без потери информативности.
var list = new Arrayl_ist<>(); // К сожалению, скомпилируется. Тип - ArrayList<Object>.
// Эти объявления не скомпилируются - недостаточно информации.
var unknownType;
var anyNullableType = null;