Java8的Lambda和方法引用

当:

1、成员方法或构造方法中的形参是接口(Interface)

2、该接口为函数式接口,即抽象方法只有一个

在方法实现的时候可以采用的方式有:

1、传统的方式实现(也适用于非函数式接口)

创建该接口的匿名内部类并重写接口方法

        //方式一
        Thread lambda1 = new Thread(new Runnable() {
            @Override
            public void run() {
                RunnableImpl r1 = new RunnableImpl();
                r1.sellTick();

            }
        }
        );

2、lambda表达式

使用lambda表达式要点即 采用()->{} 的方式,注意对lambda表达式简化后的理解

        //方式二
        Thread lambda2 = new Thread(() -> {
            r1.sellTick();
        }
        );

        //方式二改写
        Thread lambda3 = new Thread(() -> r1.sellTick());

3、使用方法引用

前提是有一个已经实现的方法,且该方法满足接口抽象方法的形参和返回值。可以采用方法引用的方式传入接口,极大简化代码

        //方式三
        Thread thread = new Thread(new RunnableImpl()::sellTick);

总结:无论是Lambda还是方法引用,核心就是必须满足接口方法中的形参和返回值。

注意:采用方法引用的时候,接口方法无返回值,则方法引用中有无返回值都可以实现编译执行;

Java8的Lambda和方法引用

Original: https://www.cnblogs.com/yisk/p/16267343.html
Author: yisk
Title: Java8的Lambda和方法引用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/569263/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MySQL的主从复制和分库分表初探

    主从复制 + 分库分表 要讲主从复制,首先来看看MySQL自带的日志文件。 日志 错误日志 错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及…

    Java 2023年6月15日
    073
  • nginx代理socket笔记

    修改 nginx.conf 文件 event{ … } stream{ upstream abc { server 127.0.0.1:3000; } server { lis…

    Java 2023年5月30日
    063
  • SpringBoot 2.x 集成QQ邮箱、网易系邮箱、Gmail邮箱发送邮件

    在Spring中提供了非常好用的 JavaMailSender接口实现邮件发送,在SpringBoot的Starter模块中也为此提供了自动化配置。 项目源码已托管在Gitee-S…

    Java 2023年5月30日
    072
  • Linux常用指令

    运行级别 运行级别说明:0 :关机1 :单用户【找回丢失密码】2:多用户状态没有网络服务3:多用户状态有网络服务4:系统未使用保留给用户5:图形界面6:系统重启常用运行级别是3 和…

    Java 2023年6月5日
    0100
  • 如何解决error: failed to push some refs to ‘xxx(远程库)‘(图文解说简洁版)

    第一次在上传远程仓库的时候出现此问题: error: failed to push some refs to ‘https://gitee.com/zhang-bingqian/c…

    Java 2023年6月5日
    0134
  • Docker学习

    Docker简介 Docker是一个开源的应用容器引擎,是一个轻量级容器技术。Docker支持将软件编译成一个镜像,然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接…

    Java 2023年6月5日
    0149
  • 程序人生|从网瘾少年到微软、BAT、字节offer收割机逆袭之路

    有情怀,有干货,微信搜索【 三太子敖丙】关注这个不一样的程序员。本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点、资料…

    Java 2023年6月9日
    096
  • java 静态变量 静态代码块 加载顺序问题

    在网上看了一个这样的题目 问输出顺序是什么? 正确答案是: 产生这个结果的原因的关键在这一句话:static StaticTest st = new StaticTest();st…

    Java 2023年5月29日
    088
  • 机器学习常用指标

    一、机器学习常用指标 对于一个分类任务,我们预测情况大致如下面混淆矩阵所示: 预测为正样本预测为负样本 标签为正样本 TP FN 标签为负样本 FP TN 1、accuracy a…

    Java 2023年6月15日
    070
  • 新蜂商城的mybatis plus版本,添加了秒杀专区、优惠卷领取以及后台搜索功能

    本项目是在newbee-mall项目的基础上改造而来,将orm层由mybatis替换为mybatis-plus,添加了秒杀功能、优惠劵功能以及后台搜索功能,喜欢的话麻烦给我个sta…

    Java 2023年6月14日
    0103
  • Kafka 分区

    一、副本机制 Kafka在⼀定数量的服务器上对主题分区进⾏复制。 当集群中的⼀个broker宕机后系统可以⾃动故障转移到其他可⽤的副本上,不会造成数据丢失。 创建主题: kafka…

    Java 2023年6月5日
    084
  • 声明式事务控制

    编程式事务控制相关对象 PlatformTransactionManager接口是 spring 的事务管理器,它里面提供了我们常用的操作事务的方法。 注意:PlatformTra…

    Java 2023年6月7日
    084
  • 【翻译】.NET 💜 GitHub Actions: .NET 的 GitHub Actions 简介

    原文 https://devblogs.microsoft.com/dotnet/dotnet-loves-github-actions/ 嗨朋友们,我整理了一些帖子,我将向您介绍…

    Java 2023年6月9日
    0109
  • Windows开机自启动运行Java的jar包

    C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 在该目录下新建web-start.bat文件,命名可自定义…

    Java 2023年5月29日
    075
  • Java调试与定位

    目录: Java程序测试:JVM调试体系, Intellij 调试, Junit自动化 Java程序监控: 常用监控工具, 性能问题 Java典型问题:锁问题, 线程池问题,JVM…

    Java 2023年5月29日
    0113
  • 《隐入尘烟》-我眼中的年度最佳

    《隐入尘烟》无疑是一部不可多得的佳作。然而,正是这样的佳作,票房却比不上那些烂俗的电影,那些烂俗甚至空洞的电影票房动辄上亿甚至几十亿,却是最有市场的最叫座的。 故事发生在西北的一个…

    Java 2023年6月13日
    086
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球