JAVA 中Lambda表達式

匿名類

匿名類的出現節省了去創建一個類繼承接口的過程
例如原過程如下:

interface IMath{
    public int compare(int x,int y); 
}
class Compare implements IMath{
    public int compare(int x, int y){  //返回x,y中最大的數
        return x>y?x:y;
    }
}
public class Hello{
    public static void main(String []args){
        IMath m = new Compare();
        System.out.println(m.compare(10,20));
    }
}

使用匿名類之後如下:

interface IMath{
    public int compare(int x,int y); 
}
public class Hello{
    public static void main(String []args){
        IMath m = new IMath() {
            public int compare(int x,int y) {
                return x>y?x:y;
            }
        };
        System.out.println(m.compare(10,20));
    }
}

簡化了一個類繼承接口的代碼
當藉口中只有一個抽象方法的時候可以使用Lambda 表達式可以更加簡化代碼
使用Lambda表達式如下

interface IMath{
    public int compare(int x,int y); 
}
public class Hello{
    public static void main(String []args){
        IMath m = (x,y) -> x>y?x:y;
        System.out.println(m.compare(10,20));
    }
}

Lambda表達式的格式:
(抽象方法的參數) -> {
方法體;
};
當方法體只有一行的時候可以省略{ }
當方法體只有一行且爲return 的時候可以省略return 這個詞

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章