首页 > 其他分享 >Lambda表达式

Lambda表达式

时间:2024-09-18 18:51:55浏览次数:3  
标签:省略 重写 void new 方法 public 表达式 Lambda

1.Lambda表达式定义格式

Lambda格式:
  ()->{}

  a.():重写方法的参数位置
  b.->:指的是传递->将重写方法的参数传递到方法体中
  c.{}:重写方法的方法体

public static void main(String[] args) {

        /*
           new Thread不能省略,如果省略了,没法创建线程对象了
           new Runnable() {
            @Override
            public void run() {
                System.out.println("我执行了");
            }
           }

           new Runnable的目的是啥?重写run方法,设置线程任务
           所以,按照函数式编程思想的角度来分析,new Runnable就是过程
           目的是重写run方法,设置线程任务

           所以new Runnable可以省略了
         */
       new Thread(()-> System.out.println("我执行了")).start();
    }

2.Lambda表达式使用前提

1.前提:
  必须是函数式接口做方法参数传递
2.函数式接口:
  有且只能有一个抽象方法的接口
3.检测:
  @FunctionalInterface

@FunctionalInterface
public interface USB {
    public abstract void open();
}

public class Test01 {
    public static void main(String[] args) {
/*        method01(new USB() {
            @Override
            public void open() {
                System.out.println("usb打开了");
            }
        });*/

        method01(()-> System.out.println("usb打开了"));
    }

    public static void method01(USB usb){
        usb.open();
    }
}

3.Lambda表达式省略规则

a.先观察是否是函数式接口做方法参数传递
b.如果是,在传递实参的时候以匿名内部类的形式传递
c.从new接口开始到重写方法的方法名结束,选中,删除 -> 别忘记再删除一个右半个大括号
d.在重写方法的参数和方法体之间加->

省略规则:

a.重写方法的参数类型可以省略
b.如果重写方法的参数只有一个,所在的小括号可以省略
c.如果方法体中只有一句话,所在的大括号以及分号可以省略
d.如果方法体中只有一句话,并且是带return的,那么所在的大括号,return,分号都可以省略

标签:省略,重写,void,new,方法,public,表达式,Lambda
From: https://blog.csdn.net/B___db_db/article/details/142340794

相关文章

  • Java 8 新特性:Lambda 表达式与函数式接口全面解析(OOF(面向函数编程))
    在Java8中,引入了一系列重要的新特性,极大地提升了开发者的编程体验和代码简洁性。其中,Lambda表达式和函数式接口是最具影响力的特性,尤其在推动Java进入函数式编程领域方面具有里程碑意义。本文将全面深入地讨论Lambda表达式、函数式接口(包括Java内置函数式接口与自......
  • 【JDK8新特性】Stream API 结合Lambda语法在项目中的实战应用
    Lambda语法回顾在JDK8中,Lambda表达式支持的引用类型主要有以下几种,如表1所示。种类Lambda表达式示例对应的引用示例类名引用普通方法(x,y,...)->对象名x.类普通方法名(y,...)类名::类普通方法名类名引用静态方法(x,y,...)->类名.类静态方法名(x,y,...)......
  • 超详细 正则表达式【源码解析+代码例子+图】
    由于正则表达式这个东西比较抽象,我推荐大家先看原理部分。在看原理部分如果有的表达式看不懂可以去下面看表,元字符这些东西还是比较好理解的。大家可以把我写的代码复制到编译器上跑一下,这样会更容易理解。一.基本介绍正则表达式就是用某一种模式去匹配字符串,筛选我们想要的......
  • C# 新技能 DynamicExpresso 动态表达式解析器
    目录前言项目介绍项目特点项目应用项目示例1、参数2、返回值3、生成动态委托4、Lambda表达式5、特殊标识符项目地址最后前言项目开发中有时候我们需要快速地执行一些小脚本,不想每次都去生成编译整个项目。这时如果有一个好用的动态表达式解析器那就就特别方......
  • MySQL篇(高级字符串函数/正则表达式)(持续更新迭代)
    目录讲点一:高级字符串函数一、简介二、常见字符串函数1.CONCAT()2.SUBSTRING()3.LENGTH()4.REPLACE()5.TRIM()6.UPPER()7.LOWER()8.LEFT()9.RIGHT()10.INSTR()11.LENTH(str)讲点二:正则表达式一、简介二、语法1.字符类2.重复次数3.通配符4.......
  • 生成器与lambda表达式
    目录生成器特性迭代器协议迭代器协议的工作原理使用生成器计算程序花费时间lambda函数生成器yield关键字用于创建生成器(generator)生成器是一种特殊的迭代器,不需要一次性将所有数据加载到内存中,使用yield关键字,函数可以返回一个值,然后在下一次调用时从上次返回的位置继续执......
  • 初识Lambda表达式(匿名函数)
    0.问题导向使用C++STL实现订单按照创建时间从小到大排查。usingOrder=structtagOrder{unsignedintcreateTimspec;//创建时间戳intid;//订单号inttotalPrice;//总价intstatus;//订单状态intp......
  • 对数几率回归(逻辑回归)中的sigmoid函数两边取对数转换为对数几率回归模型表达式的过程
    公式(3-4)是:y=11+......
  • constexpr 和常量表达式
    常量表达式(constexpression)是指值不会改变并且在编译过程就能得到计算结果的表达式。指针和constexpr必须明确一点,在constexpr声明中如果定义了一个指针,限定符constexpr仅对指针有效,与指针所指的对象无关:constint*p=nullptr;//P是一个指向整型常量的指针const......
  • constexpr声明 常量表达式
     constexpr是C++中用于声明常量表达式的关键字,表示一个变量或函数的值在编译时就可以确定,而不是在运行时计算。这对优化非常有用,因为编译器可以直接将结果嵌入到程序中,减少运行时的开销。通俗解释:变量篇:如果你有一个constexpr变量,它的值在编译时就已经固定好......