函数式编程

原语句代码

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);
    }
}
相关推荐
Dfreedom.21 小时前
聚类算法对比分析:K-Means、DBSCAN 与层次聚类
人工智能·算法·机器学习·kmeans·聚类
ZHENGZJM21 小时前
前端流式通信 Hook:useBlogStream 详解
前端·全栈开发
cmpxr_21 小时前
【C】结构体的内存对齐
c语言·开发语言·算法
人道领域21 小时前
【黑马点评日记02】Redis解决Tomcat集群Session共享问题
java·前端·后端·架构·tomcat·firefox
cheems952721 小时前
[JavaEE]深度解构 Spring 核心:从控制反转 (IoC) 到依赖注入 (DI) 的架构演进
java·spring·架构·java-ee
MRDONG121 小时前
从 Prompt 到智能体:深入理解 APE、Active-Prompt、DSP、PAL、ReAct 与 Reflexion
前端·react.js·prompt
毅炼21 小时前
MySQL常见问题总结(2)
java·数据库·mysql
翻斗包菜21 小时前
实战:使用 HAProxy 搭建高可用 Web 负载均衡集群
运维·前端·负载均衡
庞轩px21 小时前
第二篇:String、StringBuilder、StringBuffer深度剖析
java·字符串·stringbuilder·string·stringbuffer·字符串常量池
色空大师21 小时前
【阿里云部署服务问题指南】
java·mysql·阿里云·docker