Использование var для локальных переменных
Позвольте компилятору вывести тип
«Использование var для локальных переменных» — бесплатный урок Java Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 4 уроков всего.
Вывод типов локальных переменных
Начиная с Java 10 Вы можете объявлять локальные переменные с помощью var и позволять компилятору выводить тип из инициализатора. Это называется выводом типов локальных переменных. Переменная по-прежнему имеет строгую типизацию.
Ваша первая переменная var
Заменяйте явный тип на var при присваивании значения. Компилятор видит литерал и выводит подходящий тип.
public class Main {
public static void main(String[] args) {
var message = "Hello";
var count = 42;
System.out.println(message + " " + count);
}
}var — это не динамическая типизация
var не делает Java динамически типизированным языком. После вывода тип фиксируется. Последующее присваивание значения другого типа приведёт к ошибке компиляции.
public class Main {
public static void main(String[] args) {
var n = 10;
n = 20;
System.out.println(n);
}
}Вывод типов объектов
var работает и с объектами. Выведенный тип — это тип, который возвращает выражение-инициализатор.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
var list = new ArrayList<String>();
list.add("a");
list.add("b");
System.out.println(list);
}
}Меньше повторений
Длинные обобщённые типы больше не нужно записывать дважды. var убирает избыточное указание типа в левой части.
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
var scores = new HashMap<String, Integer>();
scores.put("Alice", 90);
System.out.println(scores);
}
}Вывод типа из возвращаемого значения метода
Когда метод возвращает значение, var автоматически получает объявленный тип возвращаемого значения.
public class Main {
static String greet() {
return "Hi there";
}
public static void main(String[] args) {
var g = greet();
System.out.println(g.toUpperCase());
}
}var и примитивные типы
Для целочисленного литерала выводится int, а для десятичного — double. Обращайте внимание на то, какой примитивный тип получается.
public class Main {
public static void main(String[] args) {
var i = 5;
var d = 5.0;
var b = true;
System.out.println(i + " " + d + " " + b);
}
}Проверка во время компиляции сохраняется
Поскольку тип известен во время компиляции, компилятор по-прежнему обнаруживает ошибки типов. Вызов метода String для выведенного типа int приведёт к ошибке компиляции.
public class Main {
public static void main(String[] args) {
var name = "Coddy";
System.out.println(name.length());
}
}Необходима немедленная инициализация
Объявление с var требует инициализатора в той же строке. Компилятору нужно значение, из которого он сможет вывести тип.
public class Main {
public static void main(String[] args) {
var total = 0;
for (int i = 1; i <= 5; i++) {
total += i;
}
System.out.println(total);
}
}Работа с массивами
Вы можете вывести тип массива, если инициализатор однозначно задаёт тип его элементов.
public class Main {
public static void main(String[] args) {
var numbers = new int[]{1, 2, 3, 4};
var sum = 0;
for (var n : numbers) {
sum += n;
}
System.out.println(sum);
}
}Практический пример
Использование var в небольшой программе делает код чистым и при этом сохраняет полную типизацию.
import java.util.List;
public class Main {
public static void main(String[] args) {
var fruits = List.of("apple", "banana", "cherry");
for (var fruit : fruits) {
System.out.println(fruit.toUpperCase());
}
}
}Быстрая проверка
Как лучше всего описать работу var в Java?
Повторение
Вы научились использовать var для локальных переменных:
- Компилятор выводит тип из инициализатора
- Переменная по-прежнему имеет строгую статическую типизацию
- Инициализатор обязателен в той же строке
- Это уменьшает повторения при работе с длинными обобщёнными типами
- Поддерживаются примитивные типы, объекты и массивы
Часто задаваемые вопросы
Урок «Использование var для локальных переменных» бесплатный?
Да — полный текст урока «Использование var для локальных переменных» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 4 уроков всего.
Чему я научусь в уроке «Использование var для локальных переменных»?
Позвольте компилятору вывести тип Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Java Academy?
Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Использование var для локальных переменных»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Java Academy?
Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Использование var для локальных переменных
- Когда var повышает читаемость
- var в циклах for
- Ограничения var