Java中的Lambda表达式

Lambda表达式的标准格式

格式:(形式参数)->{代码块}

形式参数:如果有多个参数,参数之间用逗号隔开 如果没有参数,留空即可

->:由英文中画线和大于符号组成,固定写法。代表着指向动作

代码块:是指我们具体要做的事情。

Lambda表达式的使用前提

  1. 有一个接口

  2. 接口中有且仅有一个抽象类

复制代码
package day7;
​
public interface LambdaInterface {
    void eat();
}
​
复制代码
package day7;
​
public class ImplementInterface implements LambdaInterface{
    @Override
    public void eat() {
        System.out.println("好好学习才可以找到好工作");
    }
}
​
复制代码
package day7;
​
public class LambdaTest  {
    public static void main(String[] args) {
        //在主方法中调用userinterface方法
        LambdaInterface im = new ImplementInterface();
        userinterface(im);
        //在匿名内部类中
        userinterface(new LambdaInterface() {
            @Override
            public void eat() {
                System.out.println("好好学习才可以找到好工作");
            }
        });
        //在Lambda方法中调用方法
        userinterface(()->{
            System.out.println("好好学习才可以找到好工作");
        });
    }
    private static void userinterface(LambdaInterface im){
        im.eat();
    }
}
​

注意 小括号里面的的参数类型可以省略 但是如果省略要一起省略 如果加参数类型也是一起加

如果小括号只有一种参数类型 则可以省略

相关推荐
budingxiaomoli42 分钟前
Spring统一功能处理
java·后端·spring
eggwyw1 小时前
Anaconda安装卸载的详细流程指南
开发语言·python
Flynn Liang2 小时前
可观测性与成本治理:一次对话的 17 个观测点
java·langchain·可观测性·micrometer·langchain4j·token 成本·llm 监控
金銀銅鐵3 小时前
带您看懂字节码指令(三):同一行加法,为什么有四种指令
java·jvm
another heaven5 小时前
【C/C++ Ranges 是零开销抽象吗?拆开管道、惰性求值和编译期膨胀】
c语言·开发语言·c++
文丑颜不良啊7 小时前
LeetCode2821~2840题目解析
java·leetcode
SomeOtherTime7 小时前
Rust 闭包语法和原理(AI回答)
开发语言·后端·rust
apcipot_rain7 小时前
C++转Java日记(10)
java·开发语言
总要学点什么8 小时前
第105篇:三维特效-流动图片墙体效果——让箭头沿墙长滚,它俩竟是同一份代码
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
简 洁 冬冬8 小时前
泛型方法写法全面辨析:从「能编译」到「能跑」到「能用」
java·泛型