Автор оригинала: Pankaj Kumar.
Корпорация Oracle собирается выпустить новую версию Java: Java SE 9 примерно в марте 2017 года. Итак, я хотел бы опубликовать серию сообщений о новых функциях Java SE 9. Это мой третий пост в этой серии.
Я уже опубликовал несколько сообщений о новых функциях Java SE 9. Прежде чем просматривать эти сообщения, пожалуйста, прочтите их ниже:
- Java SE 9 ОТВЕТОВ
- Java SE 9: Частные методы в интерфейсе
В этом посте мы обсудим еще одну новую функцию Java SE 9: “var” с некоторыми простыми и подходящими примерами.
Значение var для локальных переменных
Java SE 9 поставляется с “var” для определения и инициализации локальных переменных. Это новое ключевое слово? Мы обсудим это в следующем разделе.
Основная цель этого изменения в языке Java заключается в том, что:
- Чтобы улучшить “Вывод типа”.
- Чтобы уменьшить многословие в коде
- Чтобы написать чистый код
Java SE 6: локальные переменные
До Java SE 7 для инициализации локальных переменных мы использовали следующий подход:
Пример:-
Map> phoneBook = new HashMap >();
Здесь нам нужно определить параметры типа на обоих концах. Это выглядит как какое-то многословное право.
Java SE 7: локальные переменные
Java SE 7 представила оператор Diamond, чтобы уменьшить некоторую многословность. Он представлен в виде пустых угловых скобок: .
Мы можем использовать этот алмазный оператор справа, чтобы избежать двойного объявления параметров одного и того же типа, как показано ниже:
Пример:-
Map> phoneBook = new HashMap<>();
Здесь мы уменьшаем некоторую многословность, избегая параметров типа справа. Тем не менее, мы можем заметить, что все еще есть некоторая многословность.
Java SE 9: локальные переменные
Чтобы устранить эту проблему многословия, Java SE 9 поставляется с новой функцией: “var” для определения и инициализации локальных переменных, как показано ниже:
Пример-1:-
var phoneBook = new HashMap>();
Здесь компилятор Java 9 с определением типа ссылки на телефонную книгу в виде новой хэш-карты<Строка, список>.
Когда мы используем идентификатор var, подобный этому, для определения локальных переменных, компилятор автоматически определит его тип.
ПРИМЕЧАНИЕ:- Тип выводится на основе типа инициализатора. Если инициализатора нет, инициализатором является литерал null или тип инициализатора не может быть нормализован до подходящего обозначаемого типа.
Пример-2:-
var list = new ArrayList();
Здесь компилятор Java 9 определяет тип списка как ArrayList<Строка>, но не список<Строка>.
Пример-3:-
var stream = list.stream();
Здесь компилятор Java 9 определяет тип списка как поток<Строка>.
ПРИМЕЧАНИЕ:- Корпорация Oracle все еще работает над этой функцией, и они еще не завершили выпуск этой функции в Java SE 9 или в будущих выпусках. Мы будем ждать их обновлений.
Является ли var ключевым словом?
В Java SE 9 “var” НЕ является ключевым словом. Это Зарезервированное имя типа. Это означает, что если наш существующий код использует var в качестве имени переменной, имени метода или имени пакета, то они НЕ влияют на это изменение.
Однако любое имя класса или интерфейс повлияют на это изменение. Это очень редкий случай и не рекомендуется использовать “var” в качестве имени класса или интерфейса, поэтому это изменение не влияет на существующую базу кода.
Преимущества этого улучшения
Благодаря этой новой функции в Java 9 мы получим следующие преимущества:
- Избегайте написания шаблонного кода
- Улучшите некоторую читабельность (На некоторое время уменьшите читабельность).
- Уменьшите многословие в коде.
Вопросы для интервью
Мы уже обсуждали следующие вопросы для интервью Java SE 9 в приведенных выше разделах.
- В чем польза Java SE 9 var?
- Является ли var ключевым словом?
- Повлияет ли это изменение на существующую базу кода?
- В чем основное использование Java SE 9 var?
- Как Java SE 9 var улучшает вывод типов?
ПРИМЕЧАНИЕ:- Они рассматривают возможность включения val также в язык в ближайшее время.
Подобно тому, как Scala поддерживает “var” и “val”, Java 9 также пытается включить эти конструкции в улучшенный язык программирования Java.
Однако Scala использует:
- var для определения переменных или изменяемых данных
- значение val для определения значений или неизменяемых данных
Вот и все о концепции “Java SE 9: var для локальных переменных”. Мы обсудим еще несколько новых функций Java SE 9 в моих следующих постах.
Пожалуйста, напишите мне комментарий, если вам нравится мой пост или у вас есть какие-либо вопросы/предложения/ошибки типа.
Спасибо, что прочитали мои учебные пособия.
Счастливого обучения Java SE 9!