Java中Lambda表达式(jdk8之后的新特性)

一个Lambda表达式其实就是定义了一个匿名方法,只不过这个方法必须符合至少一个函数接口。

什么是函数式接口?

一个接口,如果只有一个显式声明的抽象方法,那么它就是一个函数接口。

lambda表达式的基本语法形式:()->方法体。

而在整个java之中,对于lambda表达式一共定义了有三类语法:


1、(变量,变量) -> 单行语句;
2、(变量...) ->表达式;
3、(变量...) ->{多行语句};

注意:

1、变量类型可以省略,Java编译器会根据上下文推断出来。
2、只有一个变量的时候()可以省略。
3、如果lambda表达式中只有一条return语句,则可以省略return。lambda表达式会自动将这条语句的值作为返回值。


程序示例

public class My {
    
    //使用Runnable来说明Lambda表达式
    @Test
    public void test1() {
        Runnable r = () -> System.out.println("Lambda");
        r.run();
    }
    
    //使用Comparator
    @Test
    public void test2() {
        //只有一条语句可以省略return
        Comparator<Integer> com = (x,y) -> Integer.compare(x, y) ;    
        System.out.println(com.compare(10, 20));
    }
    

    @Test
    public void test3() {
        //有多条语句  不能省略{} 和 return
        Comparator<Integer> com = (x,y) -> {Integer a = Integer.compare(x, y);
                                                return a ;
                                            };
        System.out.println(com.compare(10, 20));
        
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值