Latest web development tutorials

espressioni Java 8 lambda

Java 8 nuove funzionalità Java 8 nuove funzionalità


le espressioni lambda possono anche essere chiamato una chiusura, che è quello di promuovere le novità più importanti di Java 8 rilascio.

Lambda permesso di funzionare come un parametro di un metodo (funzione passata come parametro nel metodo).

Le espressioni lambda possono fare uso del codice diventa più semplice e compatto.

grammatica

sintassi delle espressioni lambda è la seguente:

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

Di seguito sono riportate le caratteristiche importanti di espressioni lambda:

  • dichiarazione di tipo opzionale: non c'è bisogno di dichiarare tipi di parametri, il compilatore può essere unificato valore del parametro di identificazione.
  • I parametri opzionali tra parentesi: un parametro definito senza parentesi, ma un numero di parametri devono essere definiti parentesi.
  • bretelle opzionali: se il corpo contiene una dichiarazione che non hai bisogno di parentesi graffe.
  • le parole chiave di ritorno opzionali: Se il soggetto è una sola espressione che restituisce un valore, il valore del compilatore tornerà automaticamente, bretelle necessario specificare espressione chiaro che restituisce un valore.

Espressioni lambda Esempi

Nel file di Java8Tester.java inserire il seguente codice:

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);
   }
}

L'attuazione del script di cui sopra, l'uscita è:

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

Utilizzare le espressioni lambda per osservare i seguenti punti:

  • Le espressioni lambda sono utilizzati principalmente nelle interfacce di linea definizione di un metodo per eseguire, ad esempio, un modo semplice per interfacciare. Nel precedente esempio, usiamo i vari tipi di espressioni lambda per definire i metodi MathOperation interfaccia. Poi definiamo l'esecuzione sayMessage.
  • Espressioni lambda metodo anonimo elimina l'utilizzo di ingombranti e data funzione Java di capacità di programmazione semplici ma potenti.

Mirino variabile

le espressioni lambda possono riferirsi solo alle variabili locali finali o definitive, il che significa che non è possibile modificare la definizione di variabili extraterritoriale lambda all'interno, altrimenti gli errori di compilazione.

Nel file di Java8Tester.java inserire il seguente codice:

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);
   }
}

L'attuazione del script di cui sopra, l'uscita è:

$ javac Java8Tester.java 
$ java Java8Tester
Hello! w3big

Java 8 nuove funzionalità Java 8 nuove funzionalità