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: Uitgebreide gids

Functionele interfaces hebben een enkele functionaliteit. Bijvoorbeeld, Comparable met de ene methode compareTo voor vergelijking. Java 8 definieert veel functionele interfaces in het pakket java.util.function voor uitgebreid gebruik in lambda-expressies. Hieronder de lijst:

Nr. Interface & Beschrijving
1

BiConsumer<T,U>

Representeert een operatie die twee invoerargumenten accepteert en geen resultaat retourneert.

2

BiFunction<T,U,R>

Representeert een functie die twee argumenten accepteert en een resultaat produceert.

3

BinaryOperator<T>

Operatie op twee operanden van hetzelfde type, produceert resultaat van hetzelfde type.

4

BiPredicate<T,U>

Predicate (Boolean-gewardeerde functie) van twee argumenten.

5

BooleanSupplier

Leverancier van Boolean-resultaten.

6

Consumer<T>

Operatie die één invoerargument accepteert, geen resultaat.

7

DoubleBinaryOperator

Operatie op twee double-operanden, produceert double-resultaat.

8

DoubleConsumer

Operatie die één double-argument accepteert, geen resultaat.

9

DoubleFunction<R>

Functie die een double-argument accepteert en een resultaat produceert.

10

DoublePredicate

Predicate van één double-argument.

11

DoubleSupplier

Leverancier van double-resultaten.

12

DoubleToIntFunction

Functie die double accepteert, int produceert.

13

DoubleToLongFunction

Functie die double accepteert, long produceert.

14

DoubleUnaryOperator

Operatie op één double-operand, produceert double-resultaat.

15

Function<T,R>

Functie die één argument accepteert en een resultaat produceert.

16

IntBinaryOperator

Operatie op twee int-operanden, produceert int-resultaat.

17

IntConsumer

Operatie die één int-argument accepteert, geen resultaat.

18

IntFunction<R>

Functie die een int-argument accepteert en een resultaat produceert.

19

IntPredicate

Predicate van één int-argument.

20

IntSupplier

Leverancier van int-resultaten.

21

IntToDoubleFunction

Functie die int accepteert, double produceert.

22

IntToLongFunction

Functie die int accepteert, long produceert.

23

IntUnaryOperator

Operatie op één int-operand, produceert int-resultaat.

24

LongBinaryOperator

Operatie op twee long-operanden, produceert long-resultaat.

25

LongConsumer

Operatie die één long-argument accepteert, geen resultaat.

26

LongFunction<R>

Functie die een long-argument accepteert en een resultaat produceert.

27

LongPredicate

Predicate van één long-argument.

28

LongSupplier

Leverancier van long-resultaten.

29

LongToDoubleFunction

Functie die long accepteert, double produceert.

30

LongToIntFunction

Functie die long accepteert, int produceert.

31

LongUnaryOperator

Operatie op één long-operand, produceert long-resultaat.

32

ObjDoubleConsumer<T>

Operatie die een object- en een double-argument accepteert, geen resultaat.

33

ObjIntConsumer<T>

Operatie die een object- en een int-argument accepteert, geen resultaat.

34

ObjLongConsumer<T>

Operatie die een object- en een long-argument accepteert, geen resultaat.

35

Predicate<T>

Predicate (Boolean-functie) van één argument.

36

Supplier<T>

Leverancier van resultaten.

37

ToDoubleBiFunction<T,U>

Functie die twee argumenten accepteert, double produceert.

38

ToDoubleFunction<T>

Functie die een double-resultaat produceert.

39

ToIntBiFunction<T,U>

Functie die twee argumenten accepteert, int produceert.

40

ToIntFunction<T>

Functie die een int-resultaat produceert.

41

ToLongBiFunction<T,U>

Functie die twee argumenten accepteert, long produceert.

42

ToLongFunction<T>

Functie die een long-resultaat produceert.

43

UnaryOperator<T>

Operatie op één operand, produceert resultaat van hetzelfde type.

Functionele Interface Voorbeeld

Predicate<T> is een functionele interface met methode test(Object) die een Boolean retourneert. Dit betekent dat een object getest wordt op true/false.

Maak het volgende programma in C:\JAVA:

Java8Tester.java

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
        // test methode retourneert altijd true
        System.out.println("Print all numbers:");
        eval(list, n -> true);
        // Predicate voor even getallen
        System.out.println("Print even numbers:");
        eval(list, n -> n % 2 == 0);
        // Predicate voor getallen > 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 + " ");
            }
        }
    }
}

We geven een Predicate-interface door, die één invoer accepteert en Boolean retourneert.

Resultaat verifiëren

Compileer met javac:

C:\JAVA> javac Java8Tester.java

Voer uit:

C:\JAVA> java Java8Tester

Uitvoer:

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 beheersen: typen, syntax en praktische voorbeelden
  2. Java-commentaar: typen, gebruik en best practices
  3. Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
  4. Java Strings beheersen: aanmaken, methodes en best practices
  5. Java interfaces meesteren: concepten, implementatie en best practices
  6. Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
  7. Java Try-with-resources meesteren: automatische resource management uitgelegd
  8. Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
  9. Java Assertions: een praktische gids voor bugdetectie en codebetrouwbaarheid
  10. Java Vector begrijpen: Gebruik, Kenmerken en Vergelijking met ArrayList
  11. Java Interfaces begrijpen: Definities, Gebruik en Best Practices