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> {
T get();
}
// Récupération du suplier (get)
List<String> lambdaSuplier = getLambdaSuplier().get();
List<String> constructorReferenceSuplier = geConstructorReferenceSuplier().get();
// Création avec lambda
public static Supplier<List<String>> getLambdaSuplier(){
return () -> new ArrayList<>();
}
// Création avec constructeur
public static Supplier<List<String>> geConstructorReferenceSuplier(){
return ArrayList<String>::new;
}
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.
LauLem.com - Conditions Générales d'Utilisation - Informations Légales - Charte relative aux cookies - Charte sur la protection des données personnelles - A propos