Рубрики
Без рубрики

Вывод типов локальных переменных в Java

Улучшенный вывод типов только для локальных переменных. Помеченный java.

Короче говоря, этот пост посвящен типу под названием var , который представлен в java 10. Прежде чем начать использовать тип var, я проанализировал и обобщил информацию о том, где использовать и не использовать тип var, например, в качестве аргумента для методов, конструкторов, исключений, лямбд, потоков и т. Д…

var – Вывод типа для локальных переменных.

Прежде чем начать использовать var, нам нужно разобраться в нескольких вопросах.

Что такое var? какая в этом польза?

Он используется для объявления локальных переменных и сокращает объем шаблонного кода.

Это новое ключевое слово, введенное в java?

Ответ большой Нет , это не ключевое слово, новый тип под названием var создан для улучшения вывода типов.

Становится ли java языком динамического типа, таким как JavaScript?

Нет , Добавлена возможность для компилятора понимать тип локальной переменной с помощью ее инициализатора без явного указания.

Каковы возможные способы объявления локальных переменных?

Примеры:-

List list = new ArrayList(); // level 1
List list = new ArrayList<>(); // level 2
var list = new ArrayList(); // level 3

Есть места, которые можно использовать и не использовать. Давайте посмотрим на некоторые из них.

Сценарий Пример
Невозможно использовать var без инициализатора. jshell> var a; | Ошибка: | не удается определить тип локальной переменной a | (невозможно использовать ‘var’ для переменной без инициализатора) | var a;
Невозможно инициализировать с помощью null. jshell > var | Ошибка: / не удается определить тип локальной переменной a | (инициализатор переменной равен ‘null’) / var; | ^———^
Невозможно использовать с массивами jshell> var[] int[]{1,2,3} | Ошибка: | ‘var’ не допускается в качестве типа элемента массива
Нельзя использовать объявления с несколькими переменными jshell> var,b=”Бета”,c=”Гамма”; | Ошибка: | ‘var’ не допускается в составном объявлении | var,b=”Бета”,c=”Гамма”; | ^ | Ошибка: | ‘var’ не допускается в составном объявлении | var,b=”Бета”,c=”Гамма”;
Переменные, методы могут быть названы var. оболочка> вар вар == > “Привет, Мир!!! ” ” j оболочка> /l var 1 : var; oshell> общедоступный void var() { System.out.println(“Привет, мир!!!”);} | созданный метод var( ) ) оболочка> var() Привет, мир!!!
Классы и интерфейсы не могут быть названы var jshell> класс var {} | Ошибка: | ‘var’ здесь не допускается | начиная с выпуска 10, ‘var’ является ограниченным типом локальной переменной и не может использоваться для объявлений типов | класс var {} | ^ jshell> интерфейс var {} | Ошибка: | ‘var’ здесь не допускается | начиная с выпуска 10, ‘var’ является ограниченным типом локальной переменной и не может использоваться для объявлений типов | интерфейс var {} | ^
Может использоваться с коллекциями оболочка> вар.of(“альфа”,”бета”,”гамма”); список ==> [альфа, бета, гамма] jshell> /v список | Список списков = [[альфа, бета, гамма] оболочка> вар.of(“альфа”,”бета”,”гамма”); установить ==> [[бета, гамма, альфа] j оболочка> /v набор | Набор набор = [бета, гамма, альфа] jshell> вар.из(Карта.запись(“имя”,”ПрабуСубра”),Карта.запись(“город”,”Бангалор”)) карта ==>} jshell> /v карта | Карта,Карта. Вход> карта =}
Невозможно использовать в аргументах метода/конструктора оболочка> общедоступная ошибка отображения недействительности(var ErrorMessage) { System.out.println(” Ошибка из-за : “+сообщение об ошибке);} | Ошибка: | ‘var’ здесь не допускается | Ошибка публичного отображения недействительности(сообщение об ошибке var) { System.out.println(” Ошибка из-за : “+Сообщение об ошибке);} | ^-^
Не может использоваться в качестве возвращаемого типа в сигнатуре метода. jshell> публичный var displayError(строковое сообщение об ошибке) { возвращает “Ошибка из-за : “+Сообщение об ошибке;} | Ошибка: | ‘var’ здесь не допускается | публичный var displayError(строковое сообщение об ошибке) { возвращает “Ошибка из-за : “+Сообщение об ошибке;} | ^-^
Может использоваться в циклах. jshell> для(var templist : список){ System.out.println(список шаблонов); } для(var;i }
Может использоваться с потоками оболочка> вар.of(“альфа”, “Бета”, “Гамма”, “дельта”, “Эпсилон”); потоки ==> java.util.поток. Ссылочный трубопровод$Head@1bce4f0a jshell> /v потоки | Stream.util.поток. Ссылочный трубопровод$Head@1bce4f0a
Не удается назначить ему функциональные интерфейсы. оболочка> функция var = (данные)->данные | Ошибка: | не удается определить тип функции локальной переменной | (для лямбда-выражения требуется явный целевой тип) | функция var = (данные)->данные; | ^————————–^ jshell> var потребитель = (данные)->{} | Ошибка: | не удается определить тип для локальной переменной потребитель | (лямбда-выражение требует явного целевого типа) | var потребитель = (данные)->{}; | ^————————^ jshell> поставщик var = ()->{возвращает новую строку(“Привет, мир!!!”);} | Ошибка: | не удается определить тип поставщика локальной переменной | (лямбда-выражение требует явного целевого типа) | поставщик var = ()->{возвращает новую строку(“Привет, мир!!!”);}; | ^——————————————————–^ jshell> var runnable = ()->{} | Ошибка: | не удается определить тип локальной переменной runnable | (для лямбда-выражения требуется явный целевой тип) | var runnable = ()->{}; | ^——————–^
Невозможно использовать с обработчиками исключений она> попробует { } поймать (var e){} | Ошибка: | ‘var’ здесь не разрешен | попробуйте { } поймать (var e){} | ^-^
Невозможно назначить интерфейсу, он всегда ссылается на тип инициализатора. jshell> список переменных ArrayList() ==> [] jshell> /v список | список массивов = [] jshell>
Не может использоваться с выводом типов. jshell> класс Альфа { var t;} | Ошибка: | ‘var’ здесь не допускается | начиная с выпуска 10, ‘var’ является ограниченным типом локальной переменной и не может использоваться для объявлений типов | класс Альфа { var t;} | ^ | Ошибка: | ‘var’ здесь не допускается | класс Альфа { var t;} | ^-^

Закон войны: – Правильно инициализированные переменные, не являющиеся массивом, могут использовать роскошь вывода типа var.

Резюме: – В конце концов, Java добавила несколько ложек сахара в существующую функцию вывода типов. это не полностью освобождает руки разработчиков для использования var в коде, у него есть свои законы. Вывод типов не является совершенно новой функцией в java, она улучшила шаг для использования для локальных переменных, в основном для того, чтобы избежать шаблонного кода с меньшим количеством препятствий для обновления. Целевая база исходного кода не должна содержать класс или интерфейс, который был назван как var, и возможность также редкая, почти ничего. Это один из способов (не единственный способ) объявления локальных переменных.

Ссылка:-

Ссылка:-

Ссылка:-

Ссылка:-

Примечание: – если вы чувствуете, что что-то должно быть добавлено или неправильно, не стесняйтесь комментировать ниже. Спасибо за чтение!!!

Оригинал: “https://dev.to/prabusubra/var-in-java-492m”