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

Java 8 - Interfaces fonctionnelles

Les interfaces fonctionnelles ont une seule fonctionnalité à présenter. Par exemple, une interface Comparable avec une seule méthode « compareTo » est utilisée à des fins de comparaison. Java 8 a défini de nombreuses interfaces fonctionnelles à utiliser de manière intensive dans les expressions lambda. Voici la liste des interfaces fonctionnelles définies dans le package java.util.Function.


BiConsommateur

Représente une opération qui accepte deux arguments d'entrée et ne renvoie aucun résultat.

BiFonction

Représente une fonction qui accepte deux arguments et produit un résultat.

OpérateurBinaire

Représente une opération sur deux opérandes du même type, produisant un résultat du même type que les opérandes.

Biprédicat

Représente un prédicat (fonction booléenne) de deux arguments.

Fournisseur booléen

Représente un fournisseur de résultats booléens.

Consommateur

Représente une opération qui accepte un seul argument d'entrée et ne renvoie aucun résultat.

OpérateurBinaireDouble

Représente une opération sur deux opérandes à valeur double et produisant un résultat à valeur double.

Double Consommateur

Représente une opération qui accepte un seul argument à valeur double et ne renvoie aucun résultat.

DoubleFonction

Représente une fonction qui accepte un argument à valeur double et produit un résultat.

Doubleprédicat

Représente un prédicat (fonction booléenne) d'un argument à valeur double.

Double fournisseur

Représente un fournisseur de résultats à double valeur.

DoubleVersIntFonction

Représente une fonction qui accepte un argument à valeur double et produit un résultat à valeur int.

DoubleToLongFonction

Représente une fonction qui accepte un argument à valeur double et produit un résultat à valeur longue.

DoubleUnaryOperator

Représente une opération sur un seul opérande à double valeur qui produit un résultat à double valeur.

Fonction

Représente une fonction qui accepte un argument et produit un résultat.

OpérateurBinaryInt

Représente une opération sur deux opérandes de valeur int et produit un résultat de valeur int.

IntConsumer

Représente une opération qui accepte un seul argument de valeur int et ne renvoie aucun résultat.

IntFonction

Représente une fonction qui accepte un argument de valeur int et produit un résultat.

IntPrédicat

Représente un prédicat (fonction à valeur booléenne) d'un argument à valeur int.

Fournisseur Int

Représente un fournisseur de résultats à valeur int.

IntToDoubleFonction

Représente une fonction qui accepte un argument à valeur int et produit un résultat à valeur double.

Fonction IntToLong

Représente une fonction qui accepte un argument de valeur int et produit un résultat de valeur longue.

IntUnaryOperator

Représente une opération sur un seul opérande de valeur int qui produit un résultat de valeur int.

OpérateurLongBinary

Représente une opération sur deux opérandes de valeur longue et produit un résultat de valeur longue.

Longue consommation

Représente une opération qui accepte un seul argument de valeur longue et ne renvoie aucun résultat.

LongueFonction

Représente une fonction qui accepte un argument de valeur longue et produit un résultat.

LongPrédicat

Représente un prédicat (fonction booléenne) d'un argument à valeur longue.

Fournisseur long

Représente un fournisseur de résultats à long terme.

FonctionLongToDouble

Représente une fonction qui accepte un argument à valeur longue et produit un résultat à valeur double.

LongToIntFonction

Représente une fonction qui accepte un argument de valeur longue et produit un résultat de valeur int.

OpérateurLongUnaire

Représente une opération sur un seul opérande de valeur longue qui produit un résultat de valeur longue.

ObjDoubleConsumer

Représente une opération qui accepte un argument à valeur objet et un argument à valeur double, et ne renvoie aucun résultat.

ObjIntConsumer

Représente une opération qui accepte un argument de valeur objet et un argument de valeur int, et ne renvoie aucun résultat.

ObjLongConsumer

Représente une opération qui accepte un argument de valeur objet et un argument de valeur longue, et ne renvoie aucun résultat.

Prédicat

Représente un prédicat (fonction booléenne) d'un argument.

Fournisseur

Représente un fournisseur de résultats.

VersDoubleBiFonction

Représente une fonction qui accepte deux arguments et produit un résultat à double valeur.

ToDoubleFunction

Représente une fonction qui produit un résultat à valeur double.

VersIntBiFonction

Représente une fonction qui accepte deux arguments et produit un résultat de valeur int.

ToIntFunction

Représente une fonction qui produit un résultat de valeur int.

ToLongBiFunction

Représente une fonction qui accepte deux arguments et produit un résultat long.

ToLongFunction

Représente une fonction qui produit un résultat à valeur longue.

Opérateurunaire

Représente une opération sur un seul opérande qui produit un résultat du même type que son opérande.

Sr.No. Interface et description
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

Exemple d'interface fonctionnelle

L'interface de prédicat est une interface fonctionnelle avec une méthode test(Object) pour renvoyer une valeur booléenne. Cette interface signifie qu'un objet est testé pour être vrai ou faux.

Créez le programme Java suivant à l'aide de l'éditeur de votre choix dans, par exemple, C:\> JAVA.

Java8Tester.java

Démo en direct
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);
		
      // Predicate<Integer> predicate = n -> true
      // n is passed as parameter to test method of Predicate interface
      // test method will always return true no matter what value n has.
		
      System.out.println("Print all numbers:");
		
      //pass n as parameter
      eval(list, n->true);
		
      // Predicate<Integer> predicate1 = n -> n%2 == 0
      // n is passed as parameter to test method of Predicate interface
      // test method will return true if n%2 comes to be zero
		
      System.out.println("Print even numbers:");
      eval(list, n-> n%2 == 0 );
		
      // Predicate<Integer> predicate2 = n -> n > 3
      // n is passed as parameter to test method of Predicate interface
      // test method will return true if n is greater than 3.
		
      System.out.println("Print numbers greater than 3:");
      eval(list, n-> n > 3 );
   }
	
   public static void eval(List<Integer> list, Predicate<Integer> predicate) {

      for(Integer n: list) {

         if(predicate.test(n)) {
            System.out.println(n + " ");
         }
      }
   }
}

Ici, nous avons passé l'interface Predicate, qui prend une seule entrée et renvoie un booléen.

Vérifier le résultat

Compilez la classe en utilisant javac compilateur comme suit −

C:\JAVA>javac Java8Tester.java

Exécutez maintenant le Java8Tester comme suit −

C:\JAVA>java Java8Tester

Il devrait produire la sortie suivante −

Print all numbers:
1
2
3
4
5
6
7
8
9
Print even numbers:
2
4
6
8
Print numbers greater than 3:
4
5
6
7
8
9

Java

  1. Opérateurs Java
  2. Commentaires Java
  3. Java pour chaque boucle
  4. Chaînes Java
  5. InterfaceJava
  6. Classe anonyme Java
  7. Java essayer avec des ressources
  8. Annotations Java
  9. Assertions Java