酷似js的java函数简写——lambda表达式

简介: 酷似js的java函数简写——lambda表达式

可以称作闭包,是java8的重要特性

lambda允许把函数当做一个方法的参数,使代码简洁紧凑


前提:必须是函数式接口才能使用lambda表达式

函数式接口:任何接口,只包含一个抽象方法

//推导lambda表达式1
public class TestLambda{
  public static void main(String[] args){
      ILike like=new Like();
        like.lambda();
    }
}
//定义一盒函数式接口
interface ILike{
  void lambda();
}
//实现类
class Like implements ILike{
  @override
    public void lambda(){System.out.println("我喜欢lambda")}
}

静态内部类:顾名思义

//推导lambda表达式2
public class TestLambda{
//实现类挪到类里变成静态内部类
static class Like implements ILike{
  @override
    public void lambda(){System.out.println("我喜欢lambda")}
}
  public static void main(String[] args){
      ILike like=new Like();
        like.lambda();
    }
}
//定义一盒函数式接口
interface ILike{
  void lambda();
}

局部内部类:放在方法里的类

//推导lambda表达式3
public class TestLambda{    
  public static void main(String[] args){
      ILike like=new Like();
        like.lambda();
    //实现类→静态内部类→局部内部类
  class Like implements ILike{
    @override
      public void lambda(){System.out.println("我喜欢lambda")}
  }
    }
}
//定义一盒函数式接口
interface ILike{
  void lambda();
}

匿名内部类:没有类名,必须借助接口或父类

//推导lambda表达式4
public class TestLambda{    
  public static void main(String[] args){     
    //实现类→静态内部类→局部内部类→匿名内部类
  like=new ILike(){
    @override
      public void lambda(){System.out.println("我喜欢lambda")}
  }
  like.lambda();
    }
}
//定义一盒函数式接口
interface ILike{
  void lambda();
}

lambda:不要接口名,也不要方法名,只写方法体

//推导lambda表达式5
public class TestLambda{    
  public static void main(String[] args){     
    //实现类→静态内部类→局部内部类→匿名内部类→lambda
  like=()→{System.out.println("我喜欢lambda")};
  like.lambda();
    }
}
//定义一盒函数式接口
interface ILike{
  void lambda();
}

带参数的lambda:a就是参数,参数类型可以去掉,一去掉就都去掉,多参数必须加括号

简化成3的前提:方法体只有一行


目录
打赏
0
0
0
0
5
分享
相关文章
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
99 13
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
83 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
69 11
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
86 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
JavaWeb JavaScript ③ JS的流程控制和函数
通过本文的详细介绍,您可以深入理解JavaScript的流程控制和函数的使用,进而编写出高效、可维护的代码。
69 32
Java中的Lambda表达式与Stream API的协同作用
在本文中,我们将探讨Java 8引入的Lambda表达式和Stream API如何改变我们处理集合和数组的方式。Lambda表达式提供了一种简洁的方法来表达代码块,而Stream API则允许我们对数据流进行高级操作,如过滤、映射和归约。通过结合使用这两种技术,我们可以以声明式的方式编写更简洁、更易于理解和维护的代码。本文将介绍Lambda表达式和Stream API的基本概念,并通过示例展示它们在实际项目中的应用。
Java中的Lambda表达式:简化代码的现代魔法
在Java 8的发布中,Lambda表达式的引入无疑是一场编程范式的革命。它不仅让代码变得更加简洁,还使得函数式编程在Java中成为可能。本文将深入探讨Lambda表达式如何改变我们编写和维护Java代码的方式,以及它是如何提升我们编码效率的。
|
4月前
|
Java中的Lambda表达式与Stream API的高效结合####
探索Java编程中Lambda表达式与Stream API如何携手并进,提升数据处理效率,实现代码简洁性与功能性的双重飞跃。 ####
48 0
|
5天前
|
【Java并发】【线程池】带你从0-1入门线程池
欢迎来到我的技术博客!我是一名热爱编程的开发者,梦想是编写高端CRUD应用。2025年我正在沉淀中,博客更新速度加快,期待与你一起成长。 线程池是一种复用线程资源的机制,通过预先创建一定数量的线程并管理其生命周期,避免频繁创建/销毁线程带来的性能开销。它解决了线程创建成本高、资源耗尽风险、响应速度慢和任务执行缺乏管理等问题。
112 60
【Java并发】【线程池】带你从0-1入门线程池
|
1天前
|
【源码】【Java并发】【线程池】邀请您从0-1阅读ThreadPoolExecutor源码
当我们创建一个`ThreadPoolExecutor`的时候,你是否会好奇🤔,它到底发生了什么?比如:我传的拒绝策略、线程工厂是啥时候被使用的? 核心线程数是个啥?最大线程数和它又有什么关系?线程池,它是怎么调度,我们传入的线程?...不要着急,小手手点上关注、点赞、收藏。主播马上从源码的角度带你们探索神秘线程池的世界...
24 0
【源码】【Java并发】【线程池】邀请您从0-1阅读ThreadPoolExecutor源码

热门文章

最新文章