Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Java 8 - Interfaces funcionales

Las interfaces funcionales tienen una sola funcionalidad para exhibir. Por ejemplo, se utiliza una interfaz Comparable con un solo método 'compareTo' para fines de comparación. Java 8 ha definido una gran cantidad de interfaces funcionales para su uso extensivo en expresiones lambda. A continuación se muestra la lista de interfaces funcionales definidas en el paquete java.util.Function.


Sr.No. Interfaz y descripción
1

BiConsumidor

Representa una operación que acepta dos argumentos de entrada y no devuelve ningún resultado.

2

Bifunción

Representa una función que acepta dos argumentos y produce un resultado.

3

Operador binario

Representa una operación sobre dos operandos del mismo tipo, produciendo un resultado del mismo tipo que los operandos.

4

Bipredicado

Representa un predicado (función de valor booleano) de dos argumentos.

5

Suministrador booleano

Representa un proveedor de resultados con valores booleanos.

6

Consumidor

Representa una operación que acepta un único argumento de entrada y no devuelve ningún resultado.

7

Operador binario doble

Representa una operación sobre dos operandos de doble valor y produce un resultado de doble valor.

8

Consumidor doble

Representa una operación que acepta un único argumento de doble valor y no devuelve ningún resultado.

9

Doble Función

Representa una función que acepta un argumento de valor doble y produce un resultado.

10

Doble Predicado

Representa un predicado (función de valor booleano) de un argumento de valor doble.

11

Doble proveedor

Representa un proveedor de resultados de doble valor.

12

FunciónDoubleToInt

Representa una función que acepta un argumento de valor doble y produce un resultado de valor entero.

13

FunciónDobleALargo

Representa una función que acepta un argumento de valor doble y produce un resultado de valor largo.

14

Operador UnarioDoble

Representa una operación en un solo operando de doble valor que produce un resultado de doble valor.

15

Función

Representa una función que acepta un argumento y produce un resultado.

16

OperadorBinarioInt

Representa una operación sobre dos operandos de valor int y produce un resultado de valor int.

17

ConsumidorInterno

Representa una operación que acepta un único argumento de valor entero y no devuelve ningún resultado.

18

FunciónInt

Representa una función que acepta un argumento de valor entero y produce un resultado.

19

PredicadoInt

Representa un predicado (función de valor booleano) de un argumento de valor entero.

20

ProveedorInterno

Representa a un proveedor de resultados de valor internacional.

21

IntToDoubleFunction

Representa una función que acepta un argumento de valor entero y produce un resultado de valor doble.

22

FunciónIntToLong

Representa una función que acepta un argumento de valor entero y produce un resultado de valor largo.

23

OperadorIntUnario

Representa una operación en un solo operando de valor int que produce un resultado de valor int.

24

Operador binario largo

Representa una operación sobre dos operandos de valor largo y produce un resultado de valor largo.

25

Consumidor largo

Representa una operación que acepta un único argumento de valor largo y no devuelve ningún resultado.

26

Función Larga

Representa una función que acepta un argumento de valor largo y produce un resultado.

27

Predicado largo

Representa un predicado (función de valor booleano) de un argumento de valor largo.

28

Proveedor largo

Representa un proveedor de resultados valiosos a largo plazo.

29

Función Larga ADoble

Representa una función que acepta un argumento de valor largo y produce un resultado de valor doble.

30

FunciónLongToInt

Representa una función que acepta un argumento de valor largo y produce un resultado de valor entero.

31

Operador Unario Largo

Representa una operación en un solo operando de valor largo que produce un resultado de valor largo.

32

ObjConsumidorDoble

Representa una operación que acepta un argumento de valor de objeto y de valor doble, y no devuelve ningún resultado.

33

ObjIntConsumidor

Representa una operación que acepta un argumento con valor de objeto y con valor de entero, y no devuelve ningún resultado.

34

ObjLongConsumer

Representa una operación que acepta un argumento con valor de objeto y uno de valor largo, y no devuelve ningún resultado.

35

Predicado

Representa un predicado (función de valor booleano) de un argumento.

36

Proveedor

Representa un proveedor de resultados.

37

ADobleBiFunción

Representa una función que acepta dos argumentos y produce un resultado de doble valor.

38

ADobleFunción

Representa una función que produce un resultado de valor doble.

39

AIntBiFunción

Representa una función que acepta dos argumentos y produce un resultado de valor entero.

40

AFunciónInt

Representa una función que produce un resultado de valor entero.

41

ALaBiFunciónLarga

Representa una función que acepta dos argumentos y produce un resultado de valor largo.

42

AFunciónLarga

Representa una función que produce un resultado de valor largo.

43

Operador Unario

Representa una operación en un solo operando que produce un resultado del mismo tipo que su operando.


Ejemplo de interfaz funcional

La interfaz de predicado es una interfaz funcional con un método de prueba (objeto) para devolver un valor booleano. Esta interfaz significa que un objeto se prueba para ser verdadero o falso.

Cree el siguiente programa Java utilizando cualquier editor de su elección en, por ejemplo, C:\> JAVA.

Java8Tester.java

Demostración en vivo
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 + " ");
         }
      }
   }
}

Aquí hemos pasado la interfaz Predicate, que toma una sola entrada y devuelve Boolean.

Verificar el resultado

Compile la clase usando javac compilador de la siguiente manera −

C:\JAVA>javac Java8Tester.java

Ahora ejecute Java8Tester de la siguiente manera −

C:\JAVA>java Java8Tester

Debería producir el siguiente resultado −

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. Operadores Java
  2. Comentarios Java
  3. Java para cada bucle
  4. Cadenas Java
  5. Interfaz Java
  6. Clase anónima de Java
  7. Prueba de Java con recursos
  8. Anotaciones Java
  9. Aserciones de Java
  10. Java Vector
  11. Java - Interfaces