Lambda函数的演化过程

lambda函数的演化

本质属于函数式编程,目的是简化编程,减少模版代码

目的

避免匿名内部类定义过多

必要条件 函数式接口

只包含一个抽象方法的接口称之为函数式接口。

简化过程

1.最开始的实现,定义一个People接口,定义一个实现类PeopleImpl

public interface People {
    //接口中的方法定义,加不加都相当于public abstract
    void love();
}

2.静态内部类:将PeopleImpl实现类放到类内部。

public class Main {
    public static void main(String[] args) {
        new PeopleImp().love();
    }
    
    public class PeopleImpl implements People{
        @Override
        public void love() {
            System.out.println("people 2 love");
        }
    }

}

3.局部内部类:将PeopleImpl实现类放到使用的代码块处。

public class Main {
    public static void main(String[] args) {
        class PeopleImpl3 implements People {
            @Override
            public void love() {
                System.out.println("局部内部类 people 3 love");
            }
        };

        new PeopleImpl3().love();
    }
}


4.匿名内部类:直接new 接口或者父类,重写相关方法。

public class Main {
    public static void main(String[] args) {
        new People() {
            @Override
            public void love() {
                System.out.println("匿名内部类:people 4 love");
            }
        }.love();
    }
}

5.lambda表达式

    People people = ()->System.out.println("lambda:people 5 love");
    people.love();

参考:https://www.zhihu.com/zvideo/1334515682549915648

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容