java8中引入一個新的操作符“->”,該操作符稱為箭頭操作符或Lambda操作符。
操作符將Lambda表達式拆分為左右兩部分:
左側:Lambda表達式的參數列表
右側:Lambda表達式中所需執行的功能,稱為Lambda體
() -> System.out.println("Hello e路縱橫開發團隊");
@Test
public void test1(){
int num = 0;
//匿名內部類
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println("Hello World!" + num);//在匿名內部類中應用了同級別的變量時,在jdk1.7以前,變量必須申明為final,在jdk1.8中,默認加上final
}
};
r.run();
System.out.println("---------------------------------------");
//Lambda表達式
Runnable r1 = () -> System.out.println("Hello e路縱橫開發團隊" + num);
r1.run();
}
(x) -> System.out.prinrln(x);
@Test
public void test2(){
Consumer<String> consumer = (x) -> System.out.println(x);
consumer.accept("e路縱橫");
}
x -> System.out.println(x);
@Test
public void test3(){
Consumer<String> consumer = x -> System.out.println(x);
consumer.accept("e路縱橫");
}
Comparator<Integer> comparator = (x, y) -> {
System.out.println("函數式接口");
return Integer.compare(x, y);
}
@Test
public void test4(){
Comparator<Integer> comparator = (x, y) -> {
System.out.println("函數式接口");
return Integer.compare(x, y);
};
}
Comparator<Integer> comparator = (x, y) -> Integer.compare(x, y);
@Test
public void test5(){
Comparator<Integer> comparator = (x, y) -> Integer.compare(x, y);
}
(Integer x, Integer y) -> Integer.compare(x, y); 其中Integer可以省略不寫
函數式接口:接口中只有一個抽象方法的接口,稱為函數式接口??梢允褂米⒔釦FunctionInterface修飾,可以檢查接口是否是函數式接口
@FunctionalInterface
public interface MyFun<T> {
public Integer getValue(Integer num);
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。