函数式编程

原语句代码

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);
    }
}
相关推荐
奋斗的小monkey2 小时前
Spring Boot 3.x核心特性与性能优化实战
java·spring boot·微服务·性能优化·响应式编程
灵感__idea2 小时前
Hello 算法:让前端人真正理解算法
前端·javascript·算法
程序猿DD2 小时前
将 GPU 级性能带到企业级 Java:CUDA 集成实用指南
java·架构
学习2年半2 小时前
小米笔试题:一元一次方程求解
算法
向葭奔赴♡2 小时前
CSS是什么?—— 网页的“化妆师”
前端·css
MATLAB代码顾问2 小时前
MATLAB绘制多种混沌系统
人工智能·算法·matlab
黑犬mo2 小时前
在Edge、Chrome浏览器上安装uBlock Origin插件
前端·edge
excel2 小时前
🧩 Vue 3 watch 源码详解(含完整注释)
前端·javascript·vue.js
大前端helloworld2 小时前
前端梳理体系从常问问题去完善-网络篇
前端·面试