java8中引入一個(gè)新的操作符“->”,該操作符稱為箭頭操作符或Lambda操作符。
操作符將Lambda表達(dá)式拆分為左右兩部分:
左側(cè):Lambda表達(dá)式的參數(shù)列表
右側(cè):Lambda表達(dá)式中所需執(zhí)行的功能,稱為L(zhǎng)ambda體
創(chuàng)新互聯(lián)是一家專業(yè)提供沾化企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都做網(wǎng)站、H5頁(yè)面制作、小程序制作等業(yè)務(wù)。10年已為沾化眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
() -> System.out.println("Hello e路縱橫開發(fā)團(tuán)隊(duì)");
@Test
public void test1(){
int num = 0;
//匿名內(nèi)部類
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println("Hello World!" + num);//在匿名內(nèi)部類中應(yīng)用了同級(jí)別的變量時(shí),在jdk1.7以前,變量必須申明為final,在jdk1.8中,默認(rèn)加上final
}
};
r.run();
System.out.println("---------------------------------------");
//Lambda表達(dá)式
Runnable r1 = () -> System.out.println("Hello e路縱橫開發(fā)團(tuán)隊(duì)" + num);
r1.run();
}
(x) -> System.out.prinrln(x);
@Test
public void test2(){
Consumer consumer = (x) -> System.out.println(x);
consumer.accept("e路縱橫");
}
x -> System.out.println(x);
@Test
public void test3(){
Consumer consumer = x -> System.out.println(x);
consumer.accept("e路縱橫");
}
Comparator
System.out.println("函數(shù)式接口");
return Integer.compare(x, y);
}
@Test
public void test4(){
Comparator comparator = (x, y) -> {
System.out.println("函數(shù)式接口");
return Integer.compare(x, y);
};
}
Comparator
@Test
public void test5(){
Comparator comparator = (x, y) -> Integer.compare(x, y);
}
(Integer x, Integer y) -> Integer.compare(x, y); 其中Integer可以省略不寫
函數(shù)式接口:接口中只有一個(gè)抽象方法的接口,稱為函數(shù)式接口。可以使用注解@FunctionInterface修飾,可以檢查接口是否是函數(shù)式接口
@FunctionalInterface
public interface MyFun {
public Integer getValue(Integer num);
}