Java 8 – Interfaces fonctionnelles

Qu’est ce qu’une interface fonctionnelle ?

Pour simplifier, il s’agit  d’une interface java qui contient une seule méthode abstraite SAM(Single Abstract Method).

Il est recommandé d’avoir une annotation informative @FunctionalInterface sur toutes les interfaces fonctionnelles. Cela non seulement communique clairement le but de cette interface, mais permet également au compilateur de générer une erreur si l’interface annotée ne satisfait pas les conditions. A noter également qu’une interface fonctionnelle peut contenir zéro o plusieurs default methods.

Les méthodes par défaut ont été introduites pour fournir une compatibilité ascendante afin que les interfaces existantes puissent utiliser les expressions lambda sans implémenter les méthodes dans la classe d’implémentation. Les méthodes par défaut sont également appelées defender methods ou virtual extension methods.

Comment déclarer une interface fonctionnelle ?

N.B : l’annotation @FunctionalInterface est optionnelle, mais si vous l’utiliser il ne faudrait pas mettre plus qu’une méthode abstraite, le cas contraire, le compilateur générera une erreur.

Laisser un commentaire