函数式编程

原语句代码

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);
    }
}
相关推荐
工呈士2 分钟前
Git 工作流与版本管理策略
前端·git·面试
Jackson__3 分钟前
谈谈 js 小数加法精度问题
前端·javascript·面试
程序员岳焱4 分钟前
Stream 流式编程在实际项目中的落地:从业务场景到代码优化
java·后端·程序员
l0sgAi6 分钟前
EasyExcel读取多层嵌套表头数据
java·程序员
酷爱码18 分钟前
Maven 配置中绕过 HTTP 阻断机制的完整解决方案
java·http·maven
jndingxin18 分钟前
OpenCV CUDA 模块光流计算------稀疏光流算法类SparsePyrLKOpticalFlow
人工智能·opencv·算法
C++ 老炮儿的技术栈23 分钟前
文本文件与二进制文件的区别
大数据·c语言·开发语言·c++·git·算法·visual studio
vvilkim1 小时前
Flutter 导航与路由管理:Navigator 的深入解析与实践
前端·javascript·flutter
vvilkim1 小时前
Flutter状态管理进阶:从基础到架构设计
前端·flutter