Java 8 Lambda 晚晚玩

Lambda語法結構

1
input -> body

input

input
1
2
3
4
5
6
7
8
9
10
11
// 不輸入
()

// 單個輸入
x

// 多個輸入(不省略型態)
(int x,int y)

// 多個輸入(省略型態)
(x,y)

body

body
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 什麼都不做
{}

// 單行不回傳值
System.out.println("NO");

// 多行不回傳值
{
System.out.println("NO");
System.out.println("NO2");
}

// 單行回傳值
x+y

// 多行回傳值
{
x++;
y-=x;
return x+y;
}

查看編譯出來.class檔案的bytecode(),查看命令如下

1
2
3
4
javap -c Class路徑

# 舉例:
javap -c org.magiclen.A

Reference

Java 8 Lambda新語法,簡化程式,增強效能
Java 1.8 (JDK8): What’s new? Code examples and performance