Nouvelles fonctionnalités de l'interface fonctionnelle intégrée de Java 8
Dans un article de blog précédent, Lambda Expression, nous avons mentionné l'interface fonctionnelle fournie par Java 8. Dans cet article, nous présenterons les quatre interfaces fonctionnelles les plus élémentaires dans Java 8.
Pour des références aux méthodes, à proprement parler, une interface doit être définie. Peu importe comment nous opérons, il n'y a en fait que quatre interfaces possibles à fonctionner.
Java 8 fournit le package d'interface fonctionnelle java.util.function. *, Sous lequel il existe de nombreuses interfaces fonctionnelles intégrées à Java 8. Cependant, il est essentiellement divisé en quatre types de base:
Interface fonctionnelle (fonction)
En prenant T en entrée et en R comme sortie, il contient également la méthode par défaut combinée avec d'autres fonctions.
@FunctionalInterFacePublic Interface Fonction <T, R> {r Appliquer (t T);} Exemple de code
public static void main (String [] args) {// Nous utilisons ici la référence de la méthode Java8, l'interface fonctionnelle fonctionnelle! Function <String, boolean> function = "Hello Java" :: Endswith; System.out.println (function.apply ("java"));} Interface de consommation
Prenez T en entrée sans rien retourner, indiquant une opération sur un seul paramètre.
@FunctionalInterfacePublic Interface Consumer <T> {void accepter (t t);} Exemple de code
classe TestDemo {// Cette méthode n'a pas de valeur de retour, mais il existe des paramètres d'entrée public void fun (string str) {System.out.println (str); }} classe publique TestFunctional {public static void main (String [] args) {TestDemo Demo = new TestDemo (); // Interface de type consommateur, uniquement les paramètres d'entrée, aucun paramètre de sortie Consumer <string> Consumer = Demo :: Fun; Consumer.Accept (""); }}
Fournisseur
Aucun paramètre d'entrée, seul t renvoie la sortie
@FunctionalInterfacePublic Interface Fournisseur <T> {t get ();} Exemple de code
classe publique TestFunctional {public static void main (String [] args) {// Interface de type fournisseur, seulement paramètres de sortie, pas de paramètres d'entrée! Fournisseur <string> fournisseur = "java 8" :: touppercase; System.out.println (fournisseur.get ()); }} Interface d'affirmation (prédicat)
Prenant T en entrée et renvoyant un booléen comme sortie, l'interface contient un certain nombre de méthodes par défaut pour combiner le prédicat dans une autre logique complexe (et, ou, non).
@FunctionalInterFacePublic Interface Predicat <T> {Booléan Test (T T);} Exemple de code
classe publique TestFunctional {public static void main (String [] args) {// Affirmer l'interface de type. Il existe des paramètres d'entrée, les paramètres de sortie sont Boolean Predicat <string> Predicat = "Android" :: equalSignoreCase; System.out.println (Predicat.Test ("Android")); }}Par conséquent, dans Java 8, comme il y a les quatre interfaces fonctionnelles ci-dessus, il est généralement rare que les utilisateurs définissent de nouvelles interfaces fonctionnelles!
Merci d'avoir lu, j'espère que cela peut vous aider. Merci pour votre soutien à ce site!