本片部落格主要介紹介紹jdk1.8推出的新特性
jdk1.8之後介面出現以下兩類方法:
a.在介面中使用default定義的普通方法,需要通過介面物件來呼叫
b.在介面中使用static定義的靜態方法,直接使用介面呼叫。
範例:
inte***ce iinte***ce
//使用static定義的靜態方法
lambda表示式是函式式程式設計。
要想使用函式式程式設計有乙個前提條件:介面必須只有乙個方法,如果存在兩個以上的方法,無法使用函式式程式設計。
範例:函式式程式設計
@functionalinte***ce
inte***ce iadd
public class test
}
如果現在某個介面就是為了函式式程式設計而生的,在定義時只能存在乙個方法,因此有乙個新的注釋**@functionalinte***ce,此注釋會檢查該介面中是否只能存在乙個抽象方法,存在抽象方法兩個以上會編譯報錯**
lambda表示式語法:
1.方法體只有一行**時:
(方法引數)->具體的方法體實現
當方法體有返回值時,單行**的lambda表示式可以省略return語句
範例:方法體有返回值
inte***ce iadd
public class test
}
2.當方法體有多行**時,
(方法引數)->;
範例:
inte***ce iadd
public class test ;
int ret=add.add(1,2);
system.out.println(ret);//23}}
方法引用只是給現有方法起了個別名方法引用四種形式:
1.引用類中靜態方法
類名稱::static 方法名稱
範例:
inte***ce iinte***ce
public class test
}
2.引用某個物件的方法
例項化物件::普通方法
範例:
inte***ce iutil
public class test
}
3.呼叫類中普通方法
類名稱::普通方法名
inte***ce iutil
public class test
}
4.引用類中的構造方法
類名稱::new
class person
@override
public string tostring()
}@functionalinte***ce // 是乙個函式式程式設計介面,只允許有乙個方法
inte***ce iutil
public class test
}
還有乙個內建函式式介面,暫時看不懂…等以後會了再補充~~~~ lambda表示式 lambda表示式
1.概述 c 11 中的 lambda 表示式用於定義並建立匿名的函式物件,以簡化程式設計工作。lambda 的語法形式如下 函式物件引數 操作符過載函式引數 mutable 或 exception 宣告 返回值型別可以看到,lambda 主要分為五個部分 函式物件引數 操作符過載函式引數 muta...
Java8之Lambda表示式
intstream.range 1000,10000 filter v v 1000 v 1000 v 1000 v 100 v 100 v 100 v 10 v 10 v 10 v foreach system.out println 上面的表示式中多處用到lamnda表示式以及stream ap...
java學習 lambda表示式
public class lambda public static void main string args sort函式的第二個引數需要乙個實現了comparator介面的類的物件 arrays.sort strings,new lengthcomparator for string str s...