Une interface qui n'a qu'une seule méthode abstraite, qui peut être utilisée comme destination d'affectation pour transmettre des expressions lambda et des références de méthode.
** ・ Vous ne pouvez avoir qu'une seule méthode abstraite -Les méthodes abstraites qui sont des méthodes publiques de la classe Object ne sont pas incluses -Vous pouvez avoir plusieurs méthodes par défaut et méthodes statiques **
La définition de l'interface fonctionnelle s'écrit comme suit.
main.java
@FunctionalInterface
public interface Sample {
public abstract void Hello(String name);
}
En annotant ** @ FunctionalInterface **, vous pouvez clairement indiquer qu'il s'agit d'une interface fonctionnelle, et cela provoquera une erreur de compilation si l'interface ne remplit pas les conditions d'une interface fonctionnelle.
Le package java.util.function fournit plusieurs types d'interfaces fonctionnelles. Il peut être grossièrement divisé en quatre types selon le modèle de l'argument reçu et le résultat renvoyé. L'interface fonctionnelle de base est la suivante.
type | Méthode abstraite | Ce que tu peux faire |
---|---|---|
Supplier |
T get() | Renvoie une valeur de retour de type T sans arguments |
Consumer |
void accept(T t) | Renvoie le traitement (aucune valeur n'est renvoyée). |
Function<T, R> | R apply(T t) | Prend T comme argument et renvoie R comme résultat |
Predicate |
boolean test(T t) | Prend un argument de type T et renvoie la valeur de booléen en conséquence |
Il existe d'autres types tels qu'une interface lorsqu'il y a deux arguments, alors utilisez-les correctement en fonction de l'objectif.
Recommended Posts