文章目錄
- Lambda表達式
- 1、介紹
- 2、5步簡化,最終精簡為Lambda表達式
- 3、Lambda表達式的再次簡化
Lambda表達式
1、介紹
為 Java 8 新特性
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAnYldHL0FWby9mZvwFN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcV2Zh1Wa9M3clN2byBXLzN3btgHL9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SN3MTM4YjYiZzMzU2NhFjNzYzX1MjMxcDMyAzLcFTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
2、5步簡化,最終精簡為Lambda表達式
//推導Lambda表達式
public class TestLambda1 {
//3.靜态内部類
static class Like2 implements ILike {
@Override
public void lambda() {
System.out.println("I like lambda2");
}
}
public static void main(String[] args) {
ILike like = new Like();
like.lambda();
like = new Like2();
like.lambda();
//4.局部内部類
class Like3 implements ILike {
@Override
public void lambda() {
System.out.println("I like lambda3");
}
}
like = new Like3();
like.lambda();
//5.匿名内部類
like = new ILike() {
@Override
public void lambda() {
System.out.println("I like lambda4");
}
};
like.lambda();
//6.用lambda簡化
like = ()-> {
System.out.println("I like lambda5");
};
like.lambda();
}
}
//1.定義一個函數式接口
interface ILike {
void lambda();
}
//2.實作類
class Like implements ILike {
@Override
public void lambda() {
System.out.println("I like lambda");
}
}
3、Lambda表達式的再次簡化
//Lambda表達式的再次簡化
public class TestLambda2 {
public static void main(String[] args) {
//1.lambda表示簡化
ILove love = (name)->{
System.out.println("I love -->" + name);
};
//簡化1.去掉參數類型
love = (name)-> {
System.out.println("I love -->" + name);
};
//簡化2.去掉括号(隻有一個參數的情況)
love = name-> {
System.out.println("I love -->" + name);
};
//簡化3.去掉花括号(隻有一條語句的情況)
love = name-> System.out.println("I love -->" + name);
love.love("Java");
}
}
interface ILove {
void love(String name);
}