Lambda表达式(多线程实现)

推导lambda表达式

  • Lambda表达式,避免匿名内部类定义过多,其实质属于函数式编程的概念;
    去掉一些没有意义的代码,只留下核心代码;
    当前接口为函数式接口(任何一个接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口),可以通过Lambda表达式来创建该接口的对象;
  • 1、实习类:接口+实现类+主线程调用抽象方法
  • 2、静态内部类(注意:加static) :接口+静态内部类实现接口+主线程调用抽象方法
  • 3、局部内部类:接口+主线程内实现接口+内部调用抽象方法
  • 4、匿名内部类,没有类的名称,必须借助接口或父类:接口+主线程内实现接口(没有创建实现类,而是直接新建一个对象实现接口)+内部调用抽象方法
  • 5、Lambda表达式:接口+主线程内实现接口(当前为函数式接口,只有一个抽象方法,直接新建接口对象实现抽象方法)+内部调用抽象方法
package com.zeng.demo01;
/*
推导lambda表达式
*/
public class TextLambda01 {//3、静态内部类(注意:加static)【简化一版】static class Like2 implements ILike{@Overridepublic void lambda() {System.out.println("i like Lambda2");}}public static void main(String[] args) {ILike iLike = new Like();//实例化对象iLike.lambda();iLike = new Like2();iLike.lambda();//4、局部内部类【简化二版】class Like3 implements ILike{@Overridepublic void lambda() {System.out.println("i like Lanbda3");}}iLike=new Like3();iLike.lambda();//5、匿名内部类,没有类的名称,必须借助接口或父类【简化三版】iLike=new ILike() {@Overridepublic void lambda() {System.out.println("i like Lambda4");}};iLike.lambda();//6、用Lambda简化【简化四版】(对于函数式接口可以用Lambda表达式来创建该接口的对象)iLike=()->{System.out.println("i like Lambda5");};iLike.lambda();}
}
//1、定义一个函数式接口(只包含唯一一个抽象方法)
interface  ILike{void lambda();
}
//2、实现类
class Like implements ILike{@Overridepublic void lambda() {System.out.println("i like Lambda");}
}

练习Lambda表达式

  • 总结
    Lambda表达式当在只有一行代码的情况下才能简化成一行代码,如果有多行代码,那么就用代码块包裹
    前提是接口为函数式接口
    多个参数也可以去掉参数类型,要去掉都去掉必须加括号。
package com.zeng.demo01;public class TestLambda02 {//2、静态内部类
//      static class Love implements ILove{
//        @Override
//        public void love(int a) {
//            System.out.println("i love you-->"+a);
//        }
//    }public static void main(String[] args) {//3、局部内部类(将类放到方法体里面)
//        class Love implements ILove{
//            @Override
//            public void love(int a) {
//                System.out.println("i love you-->"+a);
//            }
//        }//前三种需用到此方法// ILove love = new Love();//4、匿名内部类(没有方法,用接口实现)
//        ILove love=new ILove() {
//            @Override
//            public void love(int a) {
//                System.out.println("I love you--》"+a);
//            }
//        };//5、Lambda表达式(方法里有参数)
//       ILove love=(int a)->{
//            System.out.println("I love you-->"+a);
//        };//5.1 Lambda表达式(去掉参数返回类型)
//              ILove love=(a)->{
//                   System.out.println("I love you-->"+a);
//                };//5.2 Lambda表达式(简化括号)
//        ILove love=a->{
//            System.out.println("I love you-->"+a);
//        };//5.3 Lambda表达式(去掉花括号)ILove love=a->System.out.println("I love you-->"+a);love.love(520);//总结// lambda表达式当在只有一行代码的情况下才能简化成一行代码,如果有多行代码,那么就用代码块包裹//前提是接口为函数式接口//多个参数也可以去掉参数类型,要去掉都去掉必须加括号,}
}
interface ILove{void love(int a);
}
//1、实现类
//class Love implements ILove{
//
//    @Override
//    public void love(int a) {
//        System.out.println("i love you-->"+a);
//    }
//}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/309215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软正式发布 gRPC-Web for .NET

今年一月份的时候,微软曾宣布对 gRPC-Web for .NET 的实验性支持微软实验性地对 .NET 支持 gRPC-Web,现在它已正式发布。gRPC 是谷歌开源的高性能、通用 RPC 框架,支持包括 .NET 在内的多种编程语言。它面向移动和基于 HTTP/2 标准设计&#…

Java多线程(review)

文章目录线程状态线程方法线程停止线程休眠——sleep网络延时模拟倒计时与打印当前系统时间线程礼让——yield线程强制执行——Join线程状态线程优先级守护线程不安全案例死锁Lock锁线程状态 新建状态: 使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线…

Java,C++四舍五入

如果要进行四舍五入,可以对浮点数加上0.5再强制转型: package HomeTest01;public class Main {public static void main(String[] args){double a 0.6;System.out.println((int)(a0.5));double b 0.4;System.out.println((int)(b0.5));}}C也同理&…

利用Azure Functions和k8s构建Serverless计算平台

题记:昨晚在一个技术社区直播分享了“利用Azure Functions和k8s构建Serverless计算平台”这一话题。整个分享分为4个部分:Serverless概念的介绍、Azure Functions的简单介绍、k8s和KEDA的介绍和最后的演示。ServerlessServerless其实包含了两种概念&…

Java格式化输出

Java还提供了格式化输出的功能。为什么要格式化输出?因为计算机表示的数据不一定适合人来阅读。 如果要把数据显示成我们期望的格式,就需要使用格式化输出的功能。格式化输出使用System.out.printf(),通过使用占位符%?,printf()…

基于 abp vNext 和 .NET Core 开发博客项目 - 终结篇之发布项目

系列文章使用 abp cli 搭建项目给项目瘦身,让它跑起来完善与美化,Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API,包装返回模型再说Swagger,分组、描述、小绿锁接入GitHub,用JWT保护你的API异常处理和…

并发协作模型“生产者/消费者模式“

java提供了几个方法解决线程之间的通信问题 方法名作用wait()表示线程一直等待,直到其他线程通知,与sleep不同,会释放锁wait(long timeout)指定等待的毫秒数notify唤醒一个处于等待状态的线程notifyAll()唤醒同一个对象上所有调用wait()方法…

使用线程池

JDk5.0起提供了线程池相关的API:ExecutorService和ExecutorsExectorService:真正的线程池接口。常见的子类ThreadPoolExecutor void execute(Runnable command):执行任务/命令,没有返回值,一般用来执行RunnableFuturesubmit(Calla…

对 JsonConvert 的认识太肤浅了,终于还是遇到了问题

一:背景1. 讲故事在开始本文之前,真的好想做个问卷调查,到底有多少人和我一样,对 JsonConvert 的认识只局限在 SerializeObject 和 DeserializeObject 这两个方法上(┬_┬), 这样我也好结伴同行,不再孤单落…

Java继承-子类不可以继承父类的构造方法

子类不可以继承父类的构造方法,只可以调用父类的构造方法。 子类中所有的构造函数都会默认访问父类中的空参数构造函数,这是因为子类的构造函数内第一行都有默认的super()语句。 super()表示子类在初始化…

.Net微服务实战之DevOps篇

技术只是基础该系列的两篇文章《.Net微服务实战之技术选型篇》和《.Net微服务实战之技术架构分层篇》都是以技术角度出发描述微服务架构的实施。如果技术选型篇叙述的是工具,那么架构分层篇讲的就是技巧,而本篇要讨论的就是原则。一直以来我会给身边向我…

阿里云挑战赛

文章目录第一题题目:题解:第二题题目题解第三题题目题解第四题题目:题解第五题题目题解第六题题目题解第七题题目:题解第八题题目:题解;题解赛后出第一题 题目: 【单选】filter 方法意图过滤传入的订单列…

使用C#编写STM32对接物联网平台IoTSharp发送遥测数据

在之前的文章中, 我们阐述了如何用C#在STM32上写第一个Hello world , 有朋友抱怨国内介绍文章, 都是一个 Hello world , 然后再也没有音讯, 写到这里我想提一下我的初心, 那就是告诉所有人C#无所不能&…

JavaMVC之JSON

JSON 8.1、什么是JSON? JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写…

Java源文件声明规则

源文件声明规则: 当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则。 一个源文件中只能有一个 public 类 一个源文件可以有多个非 public 类 源文件的名称应该和 public 类的类名保持一致。例如:源文件中…

Java内置数据类型

内置数据类型 Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 byte: byte 数据类型是8位、有符号的,以二进制补码表示的整数; …

龙芯团队完成CoreCLR MIPS64移植,在github开源

国产龙芯的软件生态之中.NET不会缺席,毕竟 C# 与 .NetCore/Mono 也是全球几大主流的编程语言和运行平台之一,最近一段时间听到太多的鼓吹政务领域不支持.NET, 大家都明白这是某些人为了自己的利益打压使用.NET技术的公司,我今天写…

alibaba实习生代码大赛

文章目录题目Explanation代码(此代码排名13,前十名有奖233333)结果题目 在一个风雨交加的周末下午,大部分人都很不开心,因为出行不变,计划的娱乐活动都取消了,但菜鸟快递员小王却异常高兴&…

Java自动类型转换和强制类型转换(隐含)

自动类型转换 整型、实型(常量)、字符型数据可以混合运算。 运算中,不同类型的数据先转化为同一类型,然后进行运算。 转换从低级到高级。 低 ------------------------------------> 高 byte,short,char—> int —> …