zoukankan      html  css  js  c++  java
  • Lambda表达式

    什么是Lambda表达式

    • Lambda是希腊字母表中第十一位字母的英语表达
    • 在JDK8中引入,主要为了解决匿名内部类定义过多的问题,使代码看起来更加简洁
    • 实质是属于函数式编程的概念

    Lambda表达式的应用

    • Lambda用来为函数式接口创建对象,那么什么是函数式子接口呢,

    对于任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。例如Runnable类就是一个函数式接口,因此lambda被广泛用于线程程序的编写中。

    public interface Runnable {
        public abstract void run();
    }
    

    Lambda表达式的推导过程

    1. 外部类
    2. 静态内部类
    3. 局部内部类
    4. 匿名内部类
    5. lambda表达式(省去了匿名内部类的new对象和函数名)
    package MultiProcess;
    
    //lambda表达式推导过程
    public class TestLambda {
        //2、静态内部类
        static class Like2 implements ILike{
            @Override
            public void lambda() {
                System.out.println("test lambda2");
            }
        }
        public static void main(String[] args) {
            ILike obj1 = new Like();
            obj1.lambda();
    
            ILike obj2 = new Like2();
            obj2.lambda();
    
            //3、局部内部类
            class Like3 implements ILike{
                @Override
                public void lambda() {
                    System.out.println("test lambda3");
                }
            }
    
            ILike obj3 = new Like3();
            obj3.lambda();
    
            //4、匿名内部类,没有类的名称,必须借助接口或者父类
            ILike obj4 = new ILike() {
                @Override
                public void lambda() {
                    System.out.println("test lambda4");
                }
            };
            obj4.lambda();
    
            //5、用lambda简化
            ILike obj5 = ()->{System.out.println("test lambda5");};
            obj5.lambda();
        }
    }
    
    //定于一个函数式接口
    interface ILike{
        void lambda();
    }
    
    //1、实现外部类
    class Like implements ILike{
        @Override
        public void lambda() {
            System.out.println("test lambda1");
        }
    }
    
  • 相关阅读:
    Shell脚本中循环语句for,while,until用法
    国内yum源的安装(163,阿里云,epel)
    express高效入门教程(4)
    express高效入门教程(3)
    express高效入门教程(2)
    express高效入门教程(1)
    dart快速入门教程 (8)
    dart快速入门教程 (7.4)
    dart快速入门教程 (7.3)
    dart快速入门教程 (7.2)
  • 原文地址:https://www.cnblogs.com/happysml/p/13827080.html
Copyright © 2011-2022 走看看