在线一区二区三区高清视频,国产精品妇女一二三区,美女被遭强高潮网站在线播放,实拍各种胸走光见奶头

什么是函數(shù)式接口

時(shí)間:2022-10-06 12:30:34 類型:JAVA
字號(hào):    

什么是函數(shù)式接口?

  只包含一個(gè)抽象方法的接口,稱為函數(shù)式接口。

  通常我們會(huì)在函數(shù)式接口上使用@FunctionalInterface注解來標(biāo)記它是一個(gè)函數(shù)式接口,使用了該注解標(biāo)記的接口,會(huì)在編譯期檢查該接口是否是函數(shù)式接口,提醒開發(fā)者。(非強(qiáng)制性,不使用該注解標(biāo)記,只要符合只包含一個(gè)抽象方法要求同樣是函數(shù)式接口,但建議使用)

什么是Lambda表達(dá)式?

  Lambda 是一個(gè)匿名函數(shù),我們可以把 Lambda 表達(dá)式理解為是一段可以傳遞的代碼(作為參數(shù)傳入方法中)。而函數(shù)式接口可以簡寫為Lambda表達(dá)式,寫出更簡潔、更靈活的代碼。函數(shù)式接口和Lambda表達(dá)式相輔相成,為Java語言提供了一種更緊湊更易于理解的寫法。

// 通常lambda表達(dá)式 (a, b) -> {
    ...}

  左側(cè):指定了 Lambda 表達(dá)式需要的參數(shù)列表

  **右側(cè):**指定了 Lambda體,是抽象方法的實(shí)現(xiàn)邏輯,也即Lambda表達(dá)式要執(zhí)行的功能

  常規(guī)形式(有參數(shù)類型,有括號(hào),有花括號(hào))

public class lamda {

    public static void main(String[] args) {
        Hello like = (int i)->{
            System.out.println("hello" + i);
        };
        like.hello(5);
    }
}
interface Hello {
     void hello(int i);
}

  對(duì)于多個(gè)參數(shù)的方法:

public class lamda {

    public static void main(String[] args) {

        Hello like = (i,j)->{
            System.out.println("hello" + i + j);
        };

        like.hello(5,"world");
    }
}
interface Hello {
     void hello(int i,String j);
}

  對(duì)于無參或者一個(gè)參數(shù)的方法:

public class lamda {

    public static void main(String[] args) {

        Hello like = i->{
            System.out.println("hello" + i);
        };

        like.hello(5,);
    }
}
interface Hello {
     void hello(int i);
}

  對(duì)于只有一行代碼的方法:

public class lamda {
    public static void main(String[] args) {
        Hello like = (i,j)->System.out.println("hello" + i + j);
        like.hello(5,"world");
    }
}
interface Hello {
     void hello(int i,String j);
}

  總結(jié):

  前提是接口為函數(shù)式接口(只有一個(gè)方法的接口)

  以上所有簡化形式可以一起使用,即可以既簡化參數(shù)類型,又可以簡化括號(hào)

  lambda表達(dá)式只能有一行代碼的情況下才能簡化成為一行,如果有多行,那么就用代碼塊包裹。

  多個(gè)參數(shù)也可以去掠參數(shù)類型,要去掉就都去掉,必須加上括號(hào)


<