匿名類
匿名類的出現節省了去創建一個類繼承接口的過程
例如原過程如下:
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 這個詞