Méthodes de collecte d’usine pour Vavr

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.