函数式编程

原语句代码

powershell 复制代码
public class Test {
    public static void main(String[] args) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("新线程中run方法被执行了");
            }
        }).start();
    }
}

简化步骤如下:

lambda表达式不关注类型是什么,也不关注方法名是什么名,只关注匿名函数类中的参数列表和方法体。

  • 我们简化掉了new Runnable()
  • 我们简化掉了run
  • 我们简化掉了@Override

相当于public void run () {
System.out.println("新线程中run方法被执行了");
} 标黄部分

powershell 复制代码
public class Test {
    public static void main(String[] args) {
        new Thread(()->{
                System.out.println("新线程中run方法被执行了");
        }).start();
    }
}

省略规则

  • 参数类型可以省略
  • 方法体里面只有一句代码时大括号以及return语句以及语句后面的分号(;)可以省略
  • 方法体只有一个参数时方法小括号可以省略
  • 都记不住不要紧,在IDEA中使用Alt+Enter键可以自动转换

以下代码是最简省略写法

powershell 复制代码
public class Test {
    public static void main(String[] args) {
    int i= calculateNum((left, right) -> left + right);
    System.out.println(i);
}

public static int calculateNum(IntBinaryOperator operator){
    int a=10;
    int b=10;
    return operator.applyAsInt(a,b);
    }
}
相关推荐
优化控制仿真模型1 分钟前
2026年最新驾考科目一考试题库2309道全。电子版pdf
经验分享·算法·pdf
卓怡学长2 分钟前
m280本科生导师指导平台
java·数据库·spring·tomcat·maven·intellij-idea
qq_334903154 分钟前
嵌入式C++驱动开发
开发语言·c++·算法
毛骗导演7 分钟前
@tencent-weixin/openclaw-weixin 插件深度解析(四):API 协议与数据流设计
前端·架构
毛骗导演10 分钟前
@tencent-weixin/openclaw-weixin 插件深度解析(二):消息处理系统架构
前端·架构
阿贵---15 分钟前
C++代码规范化工具
开发语言·c++·算法
暮冬-  Gentle°23 分钟前
自定义内存检测工具
开发语言·c++·算法
一直都在57224 分钟前
Java死锁
java·开发语言
IT_陈寒28 分钟前
深入理解JavaScript:核心原理与最佳实践
前端·人工智能·后端
MrGud33 分钟前
Cesium中的坐标系及其转换
前端·cesium