Dernière modification : 24/08/2022

Supplier - Java 8

 

Le supplier est une interface fonctionnelle n'ayant aucun argument en entrée et retourne un objet de type T. Sa définition est la suivante :

@FunctionalInterface
public interface Supplier {
    T get();
}

 

1. Retourner un supplier

// Récupération du suplier (get)
List lambdaSuplier = getLambdaSuplier().get();
List constructorReferenceSuplier = geConstructorReferenceSuplier().get();


// Création avec lambda
public static Supplier> getLambdaSuplier(){
    return () -> new ArrayList<>();
}

// Création avec constructeur
public static Supplier> geConstructorReferenceSuplier(){
    return ArrayList::new;
}

2. Fournir un supplier en paramètre

Optional.ofNullable(null).orElseThrow(Exception::new);

Remarque : Ici, la class Exception ne sera instanciée que si l'optional est vide ou null. Si à la place de Exception::new nous avions une méthode couteuse en ressource, sans le supplier, la méthode serait exécutée dans tous les cas, pouvant engendrer des problèmes de performance. Avec le supplier, cette méthode couteuse sera appellée uniquement si nécessaire.