Наконец вы можете объявить локальные переменные Inferred Type в Java с помощью var – вот почему это здорово

nakonecz vy mozhete obyavit lokalnye peremennye inferred type v java?v=1656650770

от javinpaul

jar5Flf4rKVjeXeXkxurRe-b-RRVQZMo8kTg
«Черная керамическая чашка с блюдцем и капучино на коричневой деревянной поверхности» Карли Джин на Unsplash

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

В конце концов…

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

String str = “Java”

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

var str = “Java”.

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

Немного предыстории

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

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

Например, JavaScript имеет разрешает и варScala и Kotlin имеют вар и valC++ имеет автоC# имеет var, и Go поддерживает это путем объявления с := оператор.

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

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

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

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

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

var str = "Java 10"; // infers String 
var list = new ArrayList<String>(); // infers ArrayList<String>
var stream = list.stream(); // infers Stream<String>

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

var list = List.of(1, 2.0, "3")

Здесь будет создан список Списокt;..>> это тип пересечения, но вам не придется вводить полную информацию о типе. var делает код гораздо легче для написания и чтения в этом случае.

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

Написание сжатого кода с помощью ключевого слова var в Java

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

ByteArrayOutputStream bos = new ByteArrayOutputStream();

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

var bos = new ByteArrayOutputStream();

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

try (Stream<Book> data = dbconn.executeQuery(sql)) {    return data.map(...) .filter(...) .findAny(); }

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

try (var books = dbconn.executeQuery(query)) {   return books.map(...) .filter(...) .findAny(); }

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

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

unYRUbTTXMNdA-id-rw25UbXpaksermD2GOc

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

Пока мы можем радоваться этому var упрощает объявление сложной локальной переменной в Java 10

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

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

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

Например, этот пример var является нормальным:

public void aMethod(){ var name = "Java 10"; } 

Но следующий пример не подходит:

class aClass{   var list; // compile time error }

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

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

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

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

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

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

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

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

5. Ключевое слово var похоже на ключевое слово auto в C++, var в C#, JavaScript, Scala, Kotlin, def в Groovy и Python (в некоторой степени) и оператор : = в языке программирования Go.

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

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

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

Подведению

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

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

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

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

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

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

Впервые опубликовано на javarevisited.blogspot.com 27 марта 2018 года.

Добавить комментарий

Ваш адрес email не будет опубликован.