Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java 8 - Functionele interfaces

Functionele interfaces hebben één enkele functionaliteit om te vertonen. Er wordt bijvoorbeeld een Vergelijkbare interface met een enkele methode 'vergelijkenTo' gebruikt voor vergelijkingsdoeleinden. Java 8 heeft veel functionele interfaces gedefinieerd die uitgebreid kunnen worden gebruikt in lambda-expressies. Hieronder volgt de lijst met functionele interfaces die zijn gedefinieerd in het pakket java.util.Function.


Sr.nr. Interface en beschrijving
1

BiConsumer

Vertegenwoordigt een bewerking die twee invoerargumenten accepteert en geen resultaat oplevert.

2

BiFunction

Vertegenwoordigt een functie die twee argumenten accepteert en een resultaat oplevert.

3

BinaryOperator

Vertegenwoordigt een bewerking op twee operanden van hetzelfde type, die een resultaat opleveren van hetzelfde type als de operanden.

4

BiPredicaat

Vertegenwoordigt een predikaat (functie met Booleaanse waarde) van twee argumenten.

5

BooleanLeverancier

Vertegenwoordigt een leverancier van booleaans gewaardeerde resultaten.

6

Consument

Vertegenwoordigt een bewerking die een enkel invoerargument accepteert en geen resultaat oplevert.

7

DoubleBinaryOperator

Vertegenwoordigt een bewerking op twee operanden met dubbele waarde en produceert een resultaat met dubbele waarde.

8

Dubbele Consument

Vertegenwoordigt een bewerking die een enkel dubbelwaardig argument accepteert en geen resultaat oplevert.

9

Dubbele functie

Vertegenwoordigt een functie die een argument met dubbele waarde accepteert en een resultaat oplevert.

10

DoublePredicate

Vertegenwoordigt een predikaat (functie met Booleaanse waarde) van één argument met dubbele waarde.

11

Dubbele Leverancier

Vertegenwoordigt een leverancier van resultaten met dubbele waarde.

12

DoubleToIntFunction

Vertegenwoordigt een functie die een argument met dubbele waarde accepteert en een resultaat met een int-waarde produceert.

13

DoubleToLongFunction

Vertegenwoordigt een functie die een argument met dubbele waarde accepteert en een resultaat met lange waarde produceert.

14

DoubleUnaryOperator

Vertegenwoordigt een bewerking op een enkele operand met dubbele waarde die een resultaat met dubbele waarde oplevert.

15

Functie

Vertegenwoordigt een functie die één argument accepteert en een resultaat oplevert.

16

IntBinaryOperator

Vertegenwoordigt een bewerking op twee operanden met int-waarde en produceert een resultaat met int-waarde.

17

IntConsumer

Vertegenwoordigt een bewerking die een enkel argument met int-waarde accepteert en geen resultaat oplevert.

18

IntFunction

Vertegenwoordigt een functie die een argument met int-waarde accepteert en een resultaat oplevert.

19

IntPredicate

Vertegenwoordigt een predikaat (functie met Booleaanse waarde) van één argument met int-waarde.

20

IntSupplier

Vertegenwoordigt een leverancier van waardevolle resultaten.

21

IntToDoubleFunction

Vertegenwoordigt een functie die een argument met een int-waarde accepteert en een resultaat met dubbele waarde produceert.

22

IntToLongFunction

Vertegenwoordigt een functie die een argument met waarde int accepteert en een resultaat met lange waarde produceert.

23

IntUnaryOperator

Vertegenwoordigt een bewerking op een enkele operand met een waarde van int die een resultaat met een waarde van int produceert.

24

LongBinaryOperator

Vertegenwoordigt een bewerking op twee operanden met een lange waarde en produceert een resultaat met een lange waarde.

25

Lange Consument

Vertegenwoordigt een bewerking die een enkel argument met een lange waarde accepteert en geen resultaat oplevert.

26

Lange functie

Vertegenwoordigt een functie die een argument met een lange waarde accepteert en een resultaat oplevert.

27

LongPredicate

Vertegenwoordigt een predikaat (functie met Booleaanse waarde) van één argument met lange waarde.

28

Lange Leverancier

Vertegenwoordigt een leverancier van langdurige resultaten.

29

LongToDoubleFunction

Vertegenwoordigt een functie die een argument met een lange waarde accepteert en een resultaat met dubbele waarde produceert.

30

LongToIntFunction

Vertegenwoordigt een functie die een argument met een lange waarde accepteert en een resultaat met een waarde van int produceert.

31

LongUnaryOperator

Vertegenwoordigt een bewerking op een enkele operand met een lange waarde die een resultaat met een lange waarde oplevert.

32

ObjDoubleConsumer

Vertegenwoordigt een bewerking die een argument met objectwaarde en een argument met dubbele waarde accepteert en geen resultaat retourneert.

33

ObjIntConsumer

Vertegenwoordigt een bewerking die een argument met objectwaarde en een int-waarde accepteert en geen resultaat retourneert.

34

ObjLongConsumer

Vertegenwoordigt een bewerking die een argument met objectwaarde en een argument met lange waarde accepteert en geen resultaat retourneert.

35

Predikaat

Vertegenwoordigt een predikaat (functie met Booleaanse waarde) van één argument.

36

Leverancier

Vertegenwoordigt een leverancier van resultaten.

37

ToDoubleBiFunction

Vertegenwoordigt een functie die twee argumenten accepteert en een resultaat met dubbele waarde produceert.

38

ToDoubleFunction

Vertegenwoordigt een functie die een resultaat met dubbele waarde produceert.

39

ToIntBiFunction

Vertegenwoordigt een functie die twee argumenten accepteert en een resultaat met int-waarde produceert.

40

ToIntFunction

Vertegenwoordigt een functie die een resultaat met int-waarde produceert.

41

ToLongBiFunction

Vertegenwoordigt een functie die twee argumenten accepteert en een langdurig resultaat oplevert.

42

ToLongFunction

Vertegenwoordigt een functie die een langdurig resultaat oplevert.

43

UnaryOperator

Vertegenwoordigt een bewerking op een enkele operand die een resultaat oplevert van hetzelfde type als de operand.


Voorbeeld van functionele interface

Predicaat -interface is een functionele interface met een methodetest (Object) om een ​​Booleaanse waarde te retourneren. Deze interface geeft aan dat een object is getest om waar of onwaar te zijn.

Maak het volgende Java-programma met een editor naar keuze, bijvoorbeeld C:\> JAVA.

Java8Tester.java

Live demo
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 + " ");
         }
      }
   }
}

Hier zijn we geslaagd voor de Predicaat-interface, die een enkele invoer nodig heeft en Boolean retourneert.

Verifieer het resultaat

Stel de klas samen met javac compiler als volgt −

C:\JAVA>javac Java8Tester.java

Voer nu de Java8Tester als volgt uit −

C:\JAVA>java Java8Tester

Het zou de volgende output moeten produceren −

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. Java-operators
  2. Java-opmerkingen
  3. Java voor elke lus
  4. Java-strings
  5. Java-interface
  6. Java anonieme klasse
  7. Java proberen-met-bronnen
  8. Java-annotaties
  9. Java-beweringen
  10. Java-vector
  11. Java - Interfaces