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

Знакомство с динамической типизацией в Java с использованием ключевого слова var

JDK 10 добавил ключевое слово var в Java, которое позволяет объявлять локальную переменную без типа like вместо String str вы можете просто сказать var str. С пометкой java, программирование, новички, учебные пособия.

Раскрытие информации: Этот пост содержит партнерские ссылки; Я могу получить компенсацию, если вы приобретете товары или услуги по различным ссылкам, предоставленным в этой статье.

Привет всем! В этой статье я расскажу об одной из интересных функций Java 10. Вы правильно угадали:-), я собираюсь рассказать о введении ключевого слова var в Java . Ну, на самом деле это не ключевое слово — но я расскажу тебе об этом позже.

Наконец-то…

Наконец, Java получила ключевое слово var для объявления локальных переменных . Это позволяет вам объявлять переменную без ее типа. Например, вместо того, чтобы делать это:

Строка

теперь вы можете просто сказать это:

вар.

Это может показаться не очень выгодным, когда вы объявляете строку или переменную int, но подумайте, например, о сложных типах с помощью дженериков. Это, несомненно, сэкономит много времени при наборе текста, а также улучшит читаемость кода.

Небольшая предыстория

Разработчики Java уже давно жалуются на шаблонный код и церемонии, связанные с написанием кода. Многие вещи, которые занимают всего 5 минут на таких языках, как Python , Groovy или JavaScript может занять более 30 минут в Java из-за его многословия.

Если вы закодировали в Scala , Kotlin , Golang , C# или любой другой язык JVM , тогда вы знаете, что у всех них есть какой-то вывод типа локальной переменной, уже встроенный в язык.

Например, JavaScript имеет let и различные , Scala и Kotlin имеют var ** и **val , C++ имеет auto , C# имеет var, и Go поддерживает это путем объявления с помощью оператора := .

До Java 10 Java был единственным языком, который не имел вывода типа локальной переменной или поддержки ключевого слова var.

Благодаря тому, что вывод типов был значительно улучшен в Java 8 с введением лямбда-выражения, ссылок на методы и потоков, локальные переменные все еще необходимо было объявлять с соответствующим типом. Но теперь этого больше нет! Java 10 имеет функцию, JEP 286: Вывод типа локальной переменной , которая позволит объявлять локальные переменные без информации о типе и просто используя ключевое слово var.

Давайте посмотрим поближе.

Примеры ключевых слов Java 10 var

Вот несколько примеров ключевого слова var в Java 10:

var;//выводит строку

var ArrayList<Строка>();//выводит ArrayList<Строка>

var.stream() ;//выводит поток<Строка>

Как я уже сказал, на данный момент вы, возможно, не в полной мере осознаете, что var делает для вас. Но посмотрите на следующий пример:

вар.из(1, 2,0, “3”)

Здесь список будет выведен в List расширяет Serializable & Comparable<..>> , который является типом пересечения, но вам не придется вводить полную информацию о типе. в этом случае var значительно упрощает написание и чтение кода.

В следующем разделе мы увидим еще несколько примеров, которые помогут вам научиться писать сжатый код с использованием var в Java 10.

Как написать краткий код с использованием ключевого слова var в Java

Использование слова var reserve также делает ваш код лаконичным за счет уменьшения дублирования – например, имя класса, которое появляется как справа, так и слева от назначений, как показано в следующем примере:

ByteArrayOutputStream ByteArrayOutputStream();

Здесь ByteArrayOutputStream повторяется дважды, и мы можем устранить это, используя функцию var в Java 10, как показано ниже:

var ByteArrayOutputStream();

Мы можем делать аналогичные вещи, используя операторы try-with-resource в Java, например, это

попробуйте (Stream.ExecuteQuery(sql)) { возвращаемые данные.карта(…) ..фильтр(…) .Найти любой (); }

может быть записано следующим образом:

попробуйте (var.ExecuteQuery(запрос)) { вернуть книги.карта(…) ..фильтр(…) .Найти любой (); }

Это всего лишь несколько примеров. Есть много мест, где вы можете использовать var, чтобы сделать свой код более кратким и читаемым, многие из которых вы можете увидеть на курсе Сандера Pluralsight Что нового в Java 10 .

Это платный курс, но вы можете проверить это 10-дневная бесплатная пробная версия .

Для тех программистов, которые использовали Groovy или Scala , введение var создает впечатление, что Java идет по пути Scala … но только время покажет.

На данный момент мы можем просто радоваться тому, что ** var упрощает объявление сложной локальной переменной в Java 10. * *

И обратите внимание: вывод типа локальной переменной ключевого слова Java 10 var может использоваться только для объявления локальных переменных (например, любая переменная внутри тела метода или блока кода).

Можете ли вы использовать var для объявления переменных-членов в Java?

Вы не можете использовать var для объявления переменных-членов внутри класса, формальных параметров метода или возвращаемого типа методов.

Например, этот пример var в порядке:

метод public void(){ вар; }

Но следующий пример НЕ ПОДХОДИТ:

класс AClass{ список переменных;//ошибка во время компиляции }

Итак, несмотря на то, что эта новая функция Java 10 привлекательна и хорошо выглядит, ей еще предстоит пройти долгий путь. Тем не менее, вы можете начать использовать его для дальнейшего упрощения вашего кода. Меньше шаблонного кода всегда означает лучший и более читаемый код.

Важные моменты об этом новом ключевом слове var

Теперь, когда вы знаете, что вы можете объявлять локальные переменные без объявления типа в Java 10, пришло время узнать несколько важных вещей об этой функции, прежде чем вы начнете использовать ее в своем производственном коде:

  1. Эта функция встроена в JEP 286: Вывод типа локальной переменной и была создана не кем иным, как Брайаном Гетцем . Он автор Java Concurrency на практике , одной из самых популярных книг для разработчиков Java.

  2. Ключевое слово var позволяет выводить тип локальной переменной, что означает, что тип для локальной переменной будет выведен компилятором. Теперь вам не нужно объявлять об этом.

  3. Вывод типа локальной переменной или ключевое слово Java 10 var может использоваться только для объявления локальных переменных , например, внутри методов, в блоке кода инициализаторов, индексов в расширенном цикле for , лямбда-выражений и локальных переменных, объявленных в традиционном цикле for.

Вы не можете использовать его для объявления формальных переменных и возвращаемых типов методов, для объявления переменных-членов или полей, для формальных переменных конструктора и любого другого вида объявления переменных.

  1. Несмотря на введение var, Java по-прежнему является статически типизированным языком, и информации должно быть достаточно для определения типа локальной переменной. В противном случае компилятор выдаст сообщение об ошибке.

  2. Ключевое слово var аналогично ключевому слову auto в C++, var в C#, JavaScript , Scala , Kotlin , определение Заводной и Python (в некоторой степени) и языка программирования Go.

  3. Одна важная вещь, которую следует знать, заключается в том, что, хотя var выглядит как ключевое слово, на самом деле это не ключевое слово. Вместо этого это зарезервированное имя типа. Это означает, что код, который использует var в качестве переменной, метода или имени пакета, не будет затронут.

  4. Еще одна вещь, которую следует отметить, заключается в том, что это изменение Java 10 повлияет на код, который использует var в качестве имени класса или интерфейса. Но, как говорит JEP, эти имена на практике встречаются редко, поскольку они нарушают обычные соглашения об именовании.

  5. Неизменяемый эквивалент локальных переменных или конечных переменных val и let еще не поддерживается в Java 10.

Подведение итогов

Вот и все о var в Java 10! Это интересная функция Java 10, которая позволяет объявлять локальные переменные без объявления их типа. Это также поможет разработчикам Java быстро освоить другие языки, такие как Python , Scala или Kotlin , потому что они активно используют var для объявления изменяемых переменных и val для объявления неизменяемых локальных переменных.

Несмотря на то, что JEP 286: Вывод типа локальной переменной поддерживает только переменную и не действительный , это все еще полезно и больше похоже на кодирование Scala на Java.

Дальнейшее Обучение

Что нового в Java 10 от Сандера Мака Полная дорожная карта разработчика Java Рекомендации по стилю вывода типов локальных переменных в Java JEP 286: Вывод типов локальных переменных \ 10 вещей, которые разработчик Java должен изучить в 2021 году Полный мастер-класс Java для лучшего изучения Java

Спасибо, что прочитали эту статью. Если вам нравится эта новая функция Java 10, тогда, пожалуйста, поделитесь ею со своими друзьями и коллегами.

Если у вас есть какие-либо вопросы или отзывы, пожалуйста, оставьте сообщение и следите за обновлениями для получения дополнительных руководств и статей по Java 10 здесь.

Оригинал: “https://dev.to/javinpaul/a-taste-of-dynamic-typing-in-java-using-the-var-keyword-j1d”