> 文档中心 > Lambda表达式详细使用方法

Lambda表达式详细使用方法

文章目录

  • 1.使用场景
  • 2.Lambda表达式格式
  • 3.在IDEA中lambda与匿名内部类的转化
  • 4.例题
      • 4.1
      • 4.2
      • 4.3
      • 4.4
      • 4.5
  • 5.省略规则

1.使用场景

如果匿名内部类是一个接口,并且当中只有一个抽象方法需要重写,可以使用Lambda表达式。

2.Lambda表达式格式

(参考列表) -> {代码}
先写匿名内部类,然后通过alt+回车进行修改

3.在IDEA中lambda与匿名内部类的转化

lambda转成匿名内部类:
在这里插入图片描述
匿名内部类转成lambda:
Lambda表达式详细使用方法

4.例题

4.1

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 static <R> R type(Function<String,R> 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);    }

4.5

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.以上这些规则记不住可以省略不记

海量搞笑GIF动态图片