程序员

java中lambda表达式的具体用法

作者:admin 2021-05-11 我要评论

Lamda表达式 λ 希腊字母表中排序第十一位字母英语名称为Lambda 避免匿名内部类定义过多 其实质属于函数式 编程的概念 (params)-expression[表达式] (params)-st...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

Lamda表达式

  • λ 希腊字母表中排序第十一位字母,英语名称为Lambda

  • 避免匿名内部类定义过多

  • 其实质属于函数式 编程的概念

  • (params)->expression[表达式]

  • (params)->statement[语句]

  • (params)->{statements}

  • (a-> System.out.print(“i like lambda–>”+a));

  • new Thread (()->System.out.println(“多线程学习。。。。”)).start();

  • 为什么要使用lambda表达式

    • 避免匿名内部类定义过多
    • 可以让你的代码看起来很简洁
    • 去掉了一堆没有意义的代码,只留下核心的逻辑。
  • 也许你会说,我看了Lambda表达式,不但不觉得简洁,反而觉得更乱,看不懂了。那是因为我们还没有习惯,用的多了,看习惯了就好了。

本章重点

  • 理解Functionl Interface(函数式接口)是学习java8 lambda表达式的关键所在
  • 函数接口的定义
    • 任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口
    • 对于函数式接口,我们可以通过lambda式来创建该接口的对象。

实例代码

  • 静态内部类,局部内部类,匿名内部类与lambda表达式

  • public class TestLambda1 {
        //静态内部类
        static class like2 implements ilike{
            @Override
            public void lambda() {
                System.out.println("i like lambda2");
            }
        }
    
    
    
    
        public static void main(String[] args) {
            ilike i=new like();
            i.lambda();
            i=new like2();
            i.lambda();
            //局部内部类
            class like3 implements ilike{
                @Override
                public void lambda() {
                    System.out.println("i like lambda3");
                }
    
            }
            i=new like3();
            i.lambda();
    
            //匿名内部类,没有类的名称,必须借助接口或者夫类
            i=new ilike() {
                @Override
                public void lambda() {
                    System.out.println("i like lambda4");
                }
            };
            i.lambda();
    
    
            //用lambda简化
            i =()-> {
                System.out.println("i like lambda5");
            };
            i.lambda();
    
    
    
    
        }
    }
    //定义一个函数式接口
    interface ilike{
        void lambda();
    }
    //实现接口
    class like implements ilike{
        @Override
        public void lambda() {
            System.out.println("i like lambda");
        }
    }
    
    
  • lambda表达式:

  • public class TestLambda2 {
    
        public static void main(String[] args) {
            Ilove love=null;
    
    
            //2.lamda表示简化
    //        Ilove love=(int a)->{
    //                System.out.println("i love you-->"+a);
    //
    //        };
    //        //简化1.去掉参数类型
    //        love =(a)->{
    //            System.out.println("i love you-->"+a);
    //
    //        };
            //简化2 简化括号
            love =a->{
                System.out.println("i love you-->"+a);
            };
            //简化3 去掉花括号
            love =a-> System.out.println("i love -->"+a);
            //总结
            //lambda表达式只能有一行代码的情况下才能简化成为一行,如果又多行就携程代码块
            //前提是接口为函数式(接口中只有一个方法位函数方法)
            //多个参数也可以去掉参数类型,要去掉都去掉,必须加上括号
    
    
    
            love.love(2);
        }
    
    }
    interface Ilove{
        void love(int a);
    }
    
;原文链接:https://blog.csdn.net/AA_le/article/details/115494842

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • “鸿蒙设备开发”选“址” -->

    “鸿蒙设备开发”选“址” -->

  • Nextcloud是如何成为终极开源生产力套

    Nextcloud是如何成为终极开源生产力套

  • 手把手教你用Pycharm连接远程Python环

    手把手教你用Pycharm连接远程Python环

  • Windows 10X镜像生成工具发布:任意PC

    Windows 10X镜像生成工具发布:任意PC

腾讯云代理商
海外云服务器