Лишает ли var строгой типизации?

Слово 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;
Поделиться уроком

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *