分塊 (區間加,區間乘,單點查詢
阿新 • • 發佈:2020-08-08
(parameters) -> expression 或 (parameters) ->{ statements; }
- 可選型別宣告:
- 可選的引數圓括號:
- 可選的大括號:
- 可選的返回關鍵字:
1 package com.java.demo; 2 3 public class LambdaDemo { 4 public static void main(String[] args) { 5 print(new MyMath() { 6 @Override 7 public int sum(int x, int y) { 8 return x+y;9 } 10 },100,200); 11 12 print((int x,int y) -> { 13 return x+y; 14 },100,200); 15 } 16 17 public static void print(MyMath m,int x,int y){ 18 int num = m.sum(x,y); 19 System.out.println(num); 20 } 21 22 static interface MyMath{23 int sum(int x,int y); 24 } 25 }
基本使用步驟:
- 定義一個僅含抽象方法的函式式介面
- 宣告一個該介面的變數來實現對抽象方法的lambda表示式實現形式(此步驟可以壓縮到下一步中)
- 使用一個呼叫該介面型別的變數的方法,傳入已經第二步中的介面變數(也可以直接傳入lambda表示式)
個人目前的理解是,lambda表示式只能操作那些只有一個抽象類的介面,可以把它理解為一個匿名內部類,實際上lambda表示式的效果與匿名內部類的效果等同。