为了账号安全,请及时绑定邮箱和手机立即绑定

1.Java8新特性 - Lambda表达式学习笔记

标签:
Java

一.Lamdba 表达式的基础语法

Lamdba是一个匿名函数,Lamdba表达式是一段可以传递的代码。
Java8 中引用了一个新的操作符,-> 该操作符成为箭头操作符或者是Lamdba操作符,箭头操作符将Lamdba表达式拆分成两部分:参数列表 -> 执行的功能

二.Lambda表达式的重要特征

  • 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。

  • 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。

  • 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。

  • 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。

三.Lamdba表达式的实例

1.无参数,无返回值类型

    @Test
    public void test1() {
        Runnable runnable = new Runnable() {            @Override
            public void run() {
                System.out.println("Hello World!");
            }
        };
        runnable.run();        //等价于
        Runnable runnable1 = () -> System.out.println("Hello World!");
        runnable1.run();
    }

2.有一个参数,并且无返回值(只有一个参数,小括号可以省略)

@Test
    public void test2(){
        Consumer consumer1 = new Consumer() {            @Override
            public void accept(Object o) {
                System.out.println(o);
            }
        };
        consumer1.accept("Hello World");        //等价于
        Consumer consumer2 = item -> System.out.println(item);
        consumer2.accept("Hello World");
    }

3.有两个以上的参数,有返回值(一条语句可以省略return 和大括号)

@Test
    public void test3(){
        Comparator<Integer> comparator = (x, y) -> Integer.compare(x,y);
    }

四.Lamdba表达式需要「函数式接口」的支持

函数式接口:接口中只有一个抽象方法的接口,成为函数式接口,可以用注解@FunctionalInterface修饰来检查是否是函数式接口

import org.junit.Test;@FunctionalInterfaceinterface DemoInterface {    int value(int num);
}public class Lambda {    @Test
    public void test() {        int value = operation(10,num -> num * 2);
        System.out.println(value);
    }    public int operation(Integer x, DemoInterface demo){        return demo.value(x);
    }
}

注意:

lambda 表达式只能引用标记了 final 的外层局部变量,这就是说不能在lambda 内部修改定义在域外的局部变量,否则会编译错误。



作者:Mr_欢先生
链接:https://www.jianshu.com/p/65880979c763


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消