函数式编程

原语句代码

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);
    }
}
相关推荐
不法4 分钟前
uniapp map地图导航/地图路线
前端·vue.js·uni-app
海石7 分钟前
1次遍历,空间复杂度击败100%,时间复杂度击败85%
算法·leetcode
沫离痕16 分钟前
Cassandra 4.0.11 Docker 安装与配置手册
java·spring boot
星栈22 分钟前
LiveView 页面越写越卡,我最后抓到的凶手不是数据库,是我自己乱塞 `assigns`
前端·前端框架·elixir
plainGeekDev23 分钟前
libs 目录 → Gradle 依赖管理
android·java·kotlin
CodeStride29 分钟前
就像长跑配速一样,我是如何平衡代码性能与可读性的
java
弹简特41 分钟前
【Java项目-企悦抽】07-用户与认证模块-实现用户注册01
java·开发语言
L歪歪君41 分钟前
Apache Doris全链路性能优化实战指南:从架构设计到生产落地
java·开发语言·算法
没落英雄1 小时前
6. 从零搭建一个 AI Agent —— 构建 Web 前端,让用户能和 agent 实时交互
前端·人工智能·架构