java8-03-Lambda表达式总结

Lambda 表达式的语法格式
 
    基本结构        ()   ->  {}
    左侧   参数列表
    右侧   方法体 (Lambda体)
 
 
        1.无参数  无返回值            () ->System.out.println("无参数输出打印语句");
                
             
 
        2.有一个参数 无返回值      (x) ->System.out.println("x");
       3.只有一个参数   小括号可省略         x ->System.out.println("x");
                
 
            解释 2,3中使用    java8 新增函数式接口Consumer    accept() 方法接受一个参数 无返回值 
               
 
        4.多参数  有返回值  
            Comparator<Integer> com = (x,y) -> {
                    System.out.println("多参数 输出打印语句");
                        return  Integer.compare(x,y);
            }
 
        5.方法体(Lambda 体) 只用一条语句   return 和  大括号 都可省略
            Comparator<Integer> com = (x,y) -> Integer.compare(x,y);
            
 
         解释 4,5中   Comparator   被java8 追加为函数式接口   compare() 方法接受两个参数   返回一个结果
            
            
        6.Lambda表达式中 参数的数据类型 可省略  因为JVM编译器 上下文推断出来 即"类型推断"
            
 1 package com.wf.zhang.java8.lamdba;
 2 
 3 import org.junit.Test;
 4 
 5 import java.util.Comparator;
 6 import java.util.function.Consumer;
 7 
 8 public class TestLambda4 {
 9 
10     @Test
11     public void test01(){
12 
13         Runnable r = new Runnable() {
14             @Override
15             public void run() {
16                 System.out.println("调用run()方法");
17             }
18         };
19 
20         r.run();
21 
22 
23         //1.无参数  无返回值
24         Runnable r2 = () -> System.out.println("无参数时输出打印语句");
25 
26         r2.run();
27     }
28 
29     @Test
30     public void test02(){
31 
32         // 2.有一个参数 无返回值
33         Consumer <String> cr = (x) -> System.out.println(x);
34         cr.accept("一个参数时输出打印语句");
35     }
36 
37     @Test
38     public void test03(){
39         // 3.只有一个参数   小括号可省略
40         Consumer <String> cr = x -> System.out.println(x);
41         cr.accept("只有一个参数   小括号可省略输出打印语句");
42     }
43 
44 
45     @Test
46     public void test04(){
47 
48         //4.多参数  有返回值
49         Comparator<Integer>  cp = (x,y) -> {
50             System.out.println("多参数 输出打印语句");
51             return  Integer.compare(x,y);
52         };
53     }
54 
55     @Test
56     public void test05(){
57 
58         //5.方法体(Lambda 体) 只用一条语句   return 和  大括号 都可省略
59         Comparator<Integer>  cp = (x,y) -> Integer.compare(x,y);
60 
61     }
62 }
View Code

猜你喜欢

转载自www.cnblogs.com/wf-zhang/p/11809285.html