Lambda
A) Lambda Es una función anónima, código pasable (conciso), el uso de expresiones Lambda puede resolver clases internas anónimas
B) Los ejemplos de "inferencia de tipo" son los siguientes:
Comparator<Integer> com = (x,y) -> Integer.compare(x,y);
List<Integer> list = new ArrayList<Integer>();
List<Integer> list = new ArrayList<>();
C) Interfaz funcional (@FuncionalInterfaz): Una interfaz con un solo método abstracto en la interfaz
D) Cuatro interfaces funcionales centrales integradas en Java 8:
1) Consumidor <T>: La interfaz del consumidor anula la aceptación (T t);
2) Proveedor <T>: Interfaz de suministro T get ();
3) Función <T, R>: se aplica la interfaz funcional R (T t);
4) Predicado <T>: prueba booleana de interfaz de tipo de aserción (T t);
e) Sintaxis de referencia del método tres
1) Objeto :: nombre del método de instancia
2) Clase :: nombre del método estático
3) Clase :: nombre del método de instancia
Nota:
1) La lista de parámetros y el tipo de valor de retorno del método de llamada en el cuerpo lambda deben ser coherentes con la lista de funciones y el tipo de valor de retorno del método abstracto en la interfaz funcional.
2) Si el primer parámetro en la lista de parámetros lambda es el llamador del método de instancia y el segundo parámetro es el parámetro del método de instancia, puede usar ClassName :: método
F) Referencia del constructor
Formato: ClassName :: nuevo
Nota : ¡Este constructor de lista de parámetros necesita llamar a una lista de parámetros para ser consistente con el método funcional en la interfaz abstracta!
G) Referencia de matriz
Formato: Escriba [] :: nuevo