lambda
El formato estándar de la expresión lambda :
consta de tres partes
- 1. Algunos parámetros
- 2. Una flecha
- 3. Un fragmento de código
Formato :
(lista de parámetros -> {algunos códigos de método reescritos};
formato de explicación
(): la lista de parámetros del método abstracto en la interfaz. Si no hay ningún parámetro, déjelo en blanco; si hay parámetros, escriba los parámetros y use comas para varios parámetros Separación
->: el significado de pasar, pasar parámetros al cuerpo del método {}
{} :; el cuerpo del método del método abstracto que anula la interfaz.
Nota:
- Lambda debe tener una interfaz y solo hay un método abstracto en la interfaz
- Independientemente del ejecutable integrado de jdk, la interfaz de comparación o la interfaz personalizada, lambda solo se puede usar cuando el método abstracto de la interfaz existe y es único.
- 2. Se infiere que lambda debe tener contexto.
Es decir, el tipo de parámetro o variable local en el método debe ser el tipo de interfaz correspondiente a la lambda, para poder utilizar la lambda como columna real de la interfaz
(el contenido se puede deducir del contexto, se puede omitir) el contenido que la lambda puede omitir:
(Lista de parámetros: ) El tipo de la lista de parámetros entre paréntesis se puede omitir
(lista de parámetros): si solo hay un parámetro entre paréntesis, el tipo y () se pueden omitir
(algunos códigos) si solo hay una línea, independientemente de si hay un valor de retorno, puede Omitir ({}, return ,;) Nota, omitirlos juntos
Introducción al código (tome la creación de subprocesos como ejemplo)
public class Demo02lambda {
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "创建新线程");
}
}).start();
//使用lambda
new Thread(()-> {
System.out.println(Thread.currentThread().getName() + "创建1新线程");
}
).start();
//优化lambda
//没有参数()不可以省略,只有一行代码,{},;,return可以省
new Thread(()->System.out.println(Thread.currentThread().getName() + "创建1新线程")
).start();
}
}