Java技術分享:Lambda表示式之介面例項化

千鋒武漢發表於2021-06-11

  今天小千給大家分享的技術是:Lambda表示式之介面例項化。

圖片1

  Lambda表示式是Java SE 8中一個重要的新特性。lambda表示式允許你透過表示式來代替功能介面。 lambda表示式就和方法一樣,它提供了一個正常的引數列表和一個使用這些引數的主體(body,可以是一個表示式或一個程式碼塊)。

  Lambda表示式還增強了集合庫。 Java SE 8新增了2個對集合資料進行批次操作的包: java.util.function 包以及java.util.stream 包。 流(stream)就如同迭代器(iterator),但附加了許多額外的功能。 總的來說,lambda表示式和 stream 是自Java語言新增泛型(Generics)和註解(annotation)以來最大的變化。

   語法格式:

  (引數)->{語句塊}

  其中只有一個引數的化()可以省略

  Lambda表示式可以實現的操作:

  1、完成介面的例項化或抽象類的例項化

  比如我們執行緒的建立:

  之前都是這樣建立的:

  Public class My_Main

  {

  Public static void main(String[] args){

  New Thread(new Runnable(){

  Public void run(){

  System.out.print(“子執行緒輸出”);

  }

  }).start();

  }

  }

  可是使用Lambda表示式卻可以這樣寫:

  Public class My_Main2

  {

  Public static void main(String[] args){

  New Thread(()->System.out.print(“子執行緒輸出”)).start();

  }

  }

  看起來Lambda表示式是不是很簡潔。

  再例如:

  自定義一個介面,介面中有一個方法

  public interface AAction {

  void work(String name);

  }

  建立類進行測試

  public class My_Main {

  private static void t1(AAction aAction){

  aAction.work("張三");

  }

  public static void main(String[] args) {

  t1((n)-> System.out.println(n+" 正在千鋒學習呢"));

  }

  }

  總結:Lambda表示式實現介面的例項化要求介面中只能有一個方法。如果有多個方法就不好推斷。想Java就來千鋒 Java培訓機構


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2776403/,如需轉載,請註明出處,否則將追究法律責任。

相關文章