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

ява.ланг.Исключение ArrayIndexOutOfBoundsException Java SE 9: “var” для локальных переменных

Корпорация Oracle собирается выпустить новую версию Java: Java SE 9 примерно в марте 2017 года. Итак, я хотел бы опубликовать серию постов на Java SE 9 New

Автор оригинала: 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!