Ключове слово var було додано у java починаючи з 10 версії. За його допомогою можна оголошувати локальні змінні без явної вказівки типу. Компілятор визначає тип змінної використовуючи інформацію отриману від ініціалізатора змінної.

Розглянемо приклад в якому потрібно зчитати звичайний текстовий файл. Спочатку без використання ключового слова var:

package wiki.it.notes.java.core.var;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class Main {

    public static void main(String[] args) {
        String fileName = "text.txt";
        File file = new File(fileName);
        try(FileReader fileReader = new FileReader(file.getAbsolutePath());
            BufferedReader bufferedReader = new BufferedReader(fileReader)) {
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Тепер той самий по функціоналу код з використанням var:

package wiki.it.notes.java.core.var;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class Main {

    public static void main(String[] args) {
        var fileName = "text.txt";
        var file = new File(fileName);
        try(var fileReader = new FileReader(file.getAbsolutePath());
            var bufferedReader = new BufferedReader(fileReader)) {
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Ключова зміна відбулась у рядках 11-14. Наприклад 12 рядок, замість:

File file = new File(fileName);

Стало:

var file = new File(fileName);

Також варто звернути увагу, що ми використали var у блоці try-with-resources і це працює.

Використання ключового слова var допомагає зробити код більш коротшим, без шкоди для його сприйняття. При читанні var file = new File(fileName); тип змінної зрозуміло з ім’я ініціалізатору.

Висновки:

  • ключове слово var можна використовувати лише для оголошення локальних змінних всередині конструкторів, методів, блоків ініціалізації
  • при оголошенні змінної за допомогою var, треба обов’язково одразу її ініціалізувати в тому ж самому операторі, інакше працювати не буде, компілятор не зможе визначити тип змінної
  • змінні var можна оголошувати як final. У нашому прикладі потрібно просто написати: final var file = new File(fileName);

Мітки: