Méthodes de collecte en usine pour Vavr
1. Vue d'ensemble
Vavr est une puissante bibliothèque pour Java 8+, construite sur des expressions Java lambda. Inspiré du langage Scala,Vavr adds functional programming constructs to the Java language, comme la correspondance de modèles, les structures de contrôle, les types de données, les collections persistantes et immuables, etc.
Dans ce court article, nous allons montrerhow to use some of the factory methods to create Vavr collections. Si vous êtes nouveau sur Vavr, vous pouvez commencer parthis introductory tutorial qui à son tour a des références à d'autres articles utiles.
2. Dépendance Maven
Pour ajouter la bibliothèqueVavr à votre projet Maven, modifiez votre fichierpom.xml pour inclure la dépendance suivante:
io.vavr
vavr
0.9.1
Vous pouvez trouver la dernière version de la bibliothèque sur lehttps://search.maven.org/classic/search%7Cga%7C1%7Cg%3A%22io.vavr%22%20AND%20a%3A%22vavr%22[Maven Central repository].[#sec3] #
3. Méthodes d'usine statiques
En utilisant l'importation statique:
static import io.vavr.API.*;
on peut créer une liste en utilisant le constructeurList(…):
List numbers = List(1,2,3);
au lieu d'utiliser la méthode de fabrique statiqueof(…):
List numbers = List.of(1,2,3);
ou aussi:
Tuple t = Tuple('a', 3);
au lieu de:
Tuple t = Tuple.of('a', 3);
Ce sucre syntaxique est similaire aux constructions de Scala / Kotlin. À partir de maintenant, nous utiliserons ces abréviations dans l'article.
4. Création d'élémentsOption
Les élémentsOption ne sont pas des collections mais ils peuvent être des constructions très utiles de la bibliothèque Vavr. C'est un type queallows us to hold either an object or a None element (l'équivalent d'un objetnull):
Option none = None();
Option some = Some(1);
5. VavrTuples
De même, Java n'est pas fourni avec des tuples, comme des paires ordonnées, des triplets, etc. EnVavr, nous pouvonsdefine a Tuple that holds up to eight objects of different types. Voici un exemple contenant un objetCharacter, unString et un objetInteger:
Tuple3 tuple
= Tuple('a', "chain", 2);
6. Le typeTry
Le typeTry peut être utilisé pourmodel computations that may or may not raise an exception:
Try integer
= Success(55);
Try failure
= Failure(new Exception("Exception X encapsulated here"));
Dans ce cas, si nous évaluonsinteger.get(), nous obtiendrons l’objet entier 55. Si nous évaluonsfailure.get(), une exception sera levée.
7. CollectionsVavr
Nous pouvons créer des collections de différentes manières. PourLists, nous pouvons utiliserList.of(), List.fill(), List.tabulate(), etc. Comme mentionné précédemment, la méthode d'usine par défaut estList.of() qui peut être abrégée à l'aide du constructeur de style Scala:
List list = List(1, 2, 3, 4, 5);
Nous pouvons également créer une liste vide (appelée objetNil dansVavr):
List()
De manière analogue, nous pouvons créer d'autres types deCollections:
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. Conclusion
Nous avons vu les constructeurs les plus courants pour les types et collectionsVavr. Le sucre syntaxique fourni par les importations statiques mentionnées danssection 3 facilite la création de tous les types de la bibliothèque.
Vous pouvez trouver tous les exemples de code utilisés dans cet article dans lesGitHub project.