Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Maîtriser les interfaces fonctionnelles Java 8 : Guide complet

Une interface fonctionnelle a une seule méthode abstraite. Java 8 en définit beaucoup dans java.util.function pour usage intensif avec les lambdas.

Principales interfaces (extrait)

InterfaceDescription
Predicate<T>Prédicat booléen sur un argument : test(T)
Consumer<T>Opération sur un argument, sans retour : accept(T)
Function<T,R>Fonction un argument → résultat : apply(T)
Supplier<T>Fournisseur de résultat : get()
UnaryOperator<T>Opération un opérande → même type : apply(T)
BinaryOperator<T>Opération deux opérandes même type → même type
BiPredicate<T,U>Prédicat deux arguments
BiFunction<T,U,R>Fonction deux arguments → résultat
BiConsumer<T,U>Opération deux arguments, sans retour

... et variantes primitives (IntPredicate, LongConsumer, DoubleFunction, etc.) pour éviter l'autoboxing.

Exemple : Predicate<T> pour filtrer une liste

import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;

public class Java8Tester {
    public static void main(String[] args) {
        List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9);

        System.out.println("Tous les nombres:");
        eval(list, n -> true);

        System.out.println("Nombres pairs:");
        eval(list, n -> n % 2 == 0);

        System.out.println("Nombres > 3:");
        eval(list, n -> n > 3);
    }

    static void eval(List<Integer> list, Predicate<Integer> predicate) {
        for (Integer n : list) {
            if (predicate.test(n)) System.out.println(n + " ");
        }
    }
}

Sortie

Tous les nombres: 1 2 3 4 5 6 7 8 9
Nombres pairs: 2 4 6 8
Nombres > 3: 4 5 6 7 8 9

L'annotation @FunctionalInterface (optionnelle) garantit qu'une interface reste fonctionnelle (erreur de compilation si >1 méthode abstraite).

Java

  1. Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
  2. Commentaires Java : Types, utilisation et bonnes pratiques
  3. Maîtriser la boucle for améliorée en Java : Syntaxe, exemples et bonnes pratiques
  4. Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
  5. Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
  6. Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
  7. Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
  8. Annotations Java expliquées : types, placement et exemples pratiques
  9. Assertions Java : guide pratique pour détecter les bugs et assurer la fiabilité du code