- 1.使用场景
- 2.Lambda表达式格式
- 3.在IDEA中lambda与匿名内部类的转化
- 4.例题
- 4.1
- 4.2
- 4.3
- 4.4
- 4.5
- 5.省略规则
如果匿名内部类是一个接口,并且当中只有一个抽象方法需要重写,可以使用Lambda表达式。
2.Lambda表达式格式(参考列表) -> {代码}
先写匿名内部类,然后通过alt+回车进行修改
lambda转成匿名内部类:
匿名内部类转成lambda:
public void test(){
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("峰哥升仙");
}
}).start();
new Thread(() ->{System.out.println("峰哥升仙");}).start();
}
4.2
public static int Feng(IntBinaryOperator binaryOperator){
int a=10;
int b=20;
return binaryOperator.applyAsInt(a,b);
}
@Test
public void test1(){
int feng = Feng((left, right) -> {
return left + right;
});
System.out.println(feng);
}
4.3
public static void Guo(IntPredicate predicate){
int arr[]={1,2,3,4,5,6};
for (int i : arr) {
if(predicate.test(i)){
System.out.println(i);
}
}
}
@Test
public void test2(){
Guo((int value) -> {
return value%2==0;
});
}
4.4
public static4.5R type(Function stringRFunction){ String str="12345"; R apply = stringRFunction.apply(str); return apply; } @Test public void test3(){ Object type = type((String s) -> { return s; }); System.out.println(type); }
public static void forecahArr(IntConsumer intConsumer){
int arr[]={1,2,3,4,5,6,7,8,9,10};
for (int i : arr) {
intConsumer.accept(i);
}
}
@Test
public void test4(){
forecahArr((int value) -> {
value+=3;
System.out.println(value);
});
}
5.省略规则
1.参数类型可以直接省略
2.方法体只有一句代码时,大括号return和唯一一句代码的分号可以省略
3.方法只有一个参数时小括号可以省略
4.以上这些规则记不住可以省略不记



