码迷,mamicode.com
首页 > 其他好文 > 详细

lambda表达式学习

时间:2020-03-12 14:20:33      阅读:47      评论:0      收藏:0      [点我收藏+]

标签:格式   div   span   ace   nts   read   抽象方法   意义   jdk8   

Lambda表达式(jdk8)

1、一个接口如果只有一个抽象方法,那么它就是一个函数式接口。

2、对于函数式接口,我们可以通过lambda表达式来创建该接口的对象。

好处:

1、避免匿名内部类定义过多

2、可以让你的代码看起来简洁

3、去掉一堆没有意义的代码,只留下核心的逻辑。

格式:

()->{代码块}

简化:如果只有一个参数可以去掉括号,如果代码只有一行则也可以去掉花括号。

(a,b)->{System.out.println("正在在背英语单词");} ------->(a,b)->System.out.println("正在在背英语单词");

(a)->{System.out.println("正在在背英语单词");} ------->a->System.out.println("正在在背英语单词");

 

推导代码:

public class Lambda {

    //2、静态内部类
    static class StudentImpl2 implements Student {

        @Override
        public void read() {
            System.out.println("正在在背英语单词-2");
        }
    }

    public static void main(String[] args) {
        //1、普通实现类
        Student student = new StudentImpl();
        student.read();

        //2、静态内部类
        Student student2 = new StudentImpl2();
        student2.read();

        //3、局部内部类
        class StudentImpl3 implements Student {
            @Override
            public void read() {
                System.out.println("正在在背英语单词-3");
            }
        }

        Student student3 = new StudentImpl3();
        student3.read();

        //4、匿名内部类,没有类的名称,必须要借助接口或者父类。
        Student student4 = new Student() {
            @Override
            public void read() {
                System.out.println("正在在背英语单词-4");
            }
        };

        student4.read();

        //5、用lambda表达式简化
        //使用lambda表达式要满足,接口只有一个抽象方法。
        Student student5 = ()->System.out.println("正在在背英语单词-5");
        student5.read();

    }

}

interface Student {
    void read();
}

//1、普通实现类
class StudentImpl implements Student {

    @Override
    public void read() {
        System.out.println("正在在背英语单词-1");
    }
}

 

lambda表达式学习

标签:格式   div   span   ace   nts   read   抽象方法   意义   jdk8   

原文地址:https://www.cnblogs.com/yamiya/p/12468734.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!