函数式编程

原语句代码

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 分钟前
基于SpringBoot的在线考试系统
java·springboot·web开发·后端开发
Gopher_HBo3 分钟前
CompletableFuture运用原理
java·后端
wayz115 分钟前
Day 6 编程实战:决策树与过拟合分析
算法·决策树·机器学习
庞轩px6 分钟前
反射与动态代理——Java语言动态性的核心
java·spring·反射·aop·动态代理·类型
SuperEugene7 分钟前
Vue3 配置文件管理:按模块拆分配置,提升配置可维护性|配置驱动开发实战篇
前端·javascript·vue.js·驱动开发
阿凤2110 分钟前
后端返回文件二进制流
开发语言·前端·javascript·uniapp
LL_break12 分钟前
从零上手Redis:string编码原理、常用命令与设计逻辑详解
java·数据库·redis·缓存·java-ee
落魄江湖行13 分钟前
进阶篇四 Nuxt4 Server Routes:写后端 API
前端·vue.js·typescript·nuxt4
ฅ ฅBonnie13 分钟前
vLLM 推理后端简介
人工智能·python·算法
萧行之13 分钟前
解决Microsoft Edge/Hotmail登录报错(15/25/2603、0x80190001)
前端·microsoft·edge