1. Обзор
Vavr – это мощная библиотека для Java 8+, построенная поверх лямбда-выражений Java. Вдохновленный языком Scala, Var добавляет функциональные конструкции программирования в язык Java , такие как сопоставление шаблонов, структуры управления, типы данных, постоянные и неизменяемые коллекции и многое другое.
В этой короткой статье мы покажем , как использовать некоторые заводские методы для создания Var коллекций . Если вы новичок в Avr, вы можете начать с этого вводного руководства , которое, в свою очередь, содержит ссылки на другие полезные статьи.
2. Зависимость Maven
Чтобы добавить библиотеку Var в проект Maven, отредактируйте файл pom.xml файл для включения следующей зависимости:
io.vavr vavr 0.9.1
Вы можете найти последнюю версию библиотеки в центральном репозитории Maven .
3. Статические Заводские методы
Использование статического импорта:
static import io.vavr.API.*;
мы можем создать список с помощью конструктора List(…):
List numbers = List(1,2,3);
вместо использования статического заводского метода of(…):
List numbers = List.of(1,2,3);
или также:
Tuple t = Tuple('a', 3);
вместо:
Tuple t = Tuple.of('a', 3);
Этот синтаксический сахар похож на конструкции в Scala/Kotlin. Отныне мы будем использовать эти сокращения в статье.
4. Создание элементов опций
Элементы Option не являются коллекциями, но они могут быть очень полезными конструкциями библиотеки Var. Это тип, который позволяет нам содержать либо объект, либо None элемент (эквивалент null объекта):
Optionnone = None(); Option some = Some(1);
5. Кортежи Var
Точно так же Java не поставляется с кортежами, такими как упорядоченные пары, тройки и т. Д. В Var мы можем определить кортеж, который содержит до восьми объектов разных типов . Вот пример , который содержит Символ , Строку и Целое число объект:
Tuple3tuple = Tuple('a', "chain", 2);
6. Тип Попытки
Тип Try может использоваться для моделирования вычислений, которые могут вызвать или не вызвать исключение :
Tryinteger = Success(55); Try failure = Failure(new Exception("Exception X encapsulated here"));
В этом случае, если мы оценим integer.get () , мы получим объект integer 55. Если мы оценим failure.get() , будет выдано исключение.
7. Коллекции Var
Мы можем создавать коллекции самыми разными способами. Для List s мы можем использовать List.of(), List.fill(), List.tabulate () и т. Д. Как упоминалось ранее, заводским методом по умолчанию является List.of () , который можно сократить с помощью конструктора стиля Scala:
Listlist = List(1, 2, 3, 4, 5);
Мы также можем создать пустой список (называемый объектом Nil в Var ):
List()
Аналогичным образом мы можем создавать другие виды Коллекции s:
Array arr = Array(1, 2, 3, 4, 5); Stream stm = Stream(1, 2, 3, 4, 5); Vector vec = Vector(1, 2, 3, 4, 5);
8. Заключение
Мы видели наиболее распространенные конструкторы для типов и коллекций Var . Синтаксический сахар, предоставляемый статическим импортом, упомянутым в разделе 3 , упрощает создание всех типов в библиотеке.
Вы можете найти все примеры кода, используемые в этой статье, в проекте GitHub .