Latest web development tutorials

expresiones de Java 8 Lambda

Java 8 nuevas características Java 8 nuevas características


Las expresiones lambda también se puede llamar un cierre, que es promover las nuevas características más importantes de Java 8 liberación.

Lambda permite funcionar como un parámetro de un método (función pasado como parámetro en el método).

Las expresiones lambda pueden hacer uso del código se hace más simple y compacto.

gramática

sintaxis de expresión Lambda es el siguiente:

(parameters) -> expression
或
(parameters) ->{ statements; }

Las siguientes son características importantes de las expresiones lambda:

  • Opcional declaración del tipo: no hay necesidad de declarar los tipos de parámetros, el compilador puede unificarse valor del parámetro de identificación.
  • Los parámetros opcionales entre paréntesis: un parámetro definido sin paréntesis, pero un número de parámetros tienen que ser definidos paréntesis.
  • tirantes opcionales: si el cuerpo contiene una declaración de que usted no necesita aparatos de ortodoncia.
  • palabras clave de retorno opcionales: Si el sujeto es sólo una expresión que devuelve un valor, el compilador valor volverá automáticamente, los apoyos deben especificar clara expresión que devuelve un valor.

Expresiones Lambda ejemplos

En el archivo Java8Tester.java introduzca el código siguiente:

public class Java8Tester {
   public static void main(String args[]){
      Java8Tester tester = new Java8Tester();
		
      // 类型声明
      MathOperation addition = (int a, int b) -> a + b;
		
      // 不用类型声明
      MathOperation subtraction = (a, b) -> a - b;
		
      // 大括号中的返回语句
      MathOperation multiplication = (int a, int b) -> { return a * b; };
		
      // 没有大括号及返回语句
      MathOperation division = (int a, int b) -> a / b;
		
      System.out.println("10 + 5 = " + tester.operate(10, 5, addition));
      System.out.println("10 - 5 = " + tester.operate(10, 5, subtraction));
      System.out.println("10 x 5 = " + tester.operate(10, 5, multiplication));
      System.out.println("10 / 5 = " + tester.operate(10, 5, division));
		
      // 不用括号
      GreetingService greetService1 = message ->
      System.out.println("Hello " + message);
		
      // 用括号
      GreetingService greetService2 = (message) ->
      System.out.println("Hello " + message);
		
      greetService1.sayMessage("w3big");
      greetService2.sayMessage("Google");
   }
	
   interface MathOperation {
      int operation(int a, int b);
   }
	
   interface GreetingService {
      void sayMessage(String message);
   }
	
   private int operate(int a, int b, MathOperation mathOperation){
      return mathOperation.operation(a, b);
   }
}

Aplicación de la secuencia de comandos anterior, la salida es:

$ javac Java8Tester.java 
$ java Java8Tester
10 + 5 = 15
10 - 5 = 5
10 x 5 = 50
10 / 5 = 2
Hello w3big
Hello Google

Utilizar expresiones lambda tener en cuenta los siguientes puntos:

  • Las expresiones lambda se utilizan principalmente en las interfaces de línea de definición de método para llevar a cabo, por ejemplo, una forma sencilla de interfaz. En el ejemplo anterior, usamos diferentes tipos de expresiones lambda para definir métodos MathOperation interfaz. Luego definimos la ejecución sayMessage.
  • Expresiones Lambda método anónimo elimina el uso de la función de Java engorroso y teniendo en cuenta las capacidades de programación simples pero potentes.

Mira variable

expresiones lambda sólo pueden referirse a las variables locales o final, lo que significa que no se puede modificar la definición de las variables extraterritorial lambda en el interior, de lo contrario los errores de compilación.

En el archivo Java8Tester.java introduzca el código siguiente:

public class Java8Tester {

   final static String salutation = "Hello! ";
   
   public static void main(String args[]){
      GreetingService greetService1 = message -> 
      System.out.println(salutation + message);
      greetService1.sayMessage("w3big");
   }
	
   interface GreetingService {
      void sayMessage(String message);
   }
}

Aplicación de la secuencia de comandos anterior, la salida es:

$ javac Java8Tester.java 
$ java Java8Tester
Hello! w3big

Java 8 nuevas características Java 8 nuevas características