酷似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的前提:方法体只有一行


相关文章
|
28天前
|
Java API 开发者
Java中的Lambda表达式与Stream API的协同作用
在本文中,我们将探讨Java 8引入的Lambda表达式和Stream API如何改变我们处理集合和数组的方式。Lambda表达式提供了一种简洁的方法来表达代码块,而Stream API则允许我们对数据流进行高级操作,如过滤、映射和归约。通过结合使用这两种技术,我们可以以声明式的方式编写更简洁、更易于理解和维护的代码。本文将介绍Lambda表达式和Stream API的基本概念,并通过示例展示它们在实际项目中的应用。
|
1月前
|
Java API 开发者
Java中的Lambda表达式:简洁代码的利器####
本文探讨了Java中Lambda表达式的概念、用途及其在简化代码和提高开发效率方面的显著作用。通过具体实例,展示了Lambda表达式如何在Java 8及更高版本中替代传统的匿名内部类,使代码更加简洁易读。文章还简要介绍了Lambda表达式的语法和常见用法,帮助开发者更好地理解和应用这一强大的工具。 ####
|
1月前
|
并行计算 Java 编译器
深入理解Java中的Lambda表达式
在Java 8中引入的Lambda表达式,不仅简化了代码编写,还提升了代码可读性。本文将带你探索Lambda表达式背后的逻辑与原理,通过实例展示如何高效利用这一特性优化你的程序。
|
27天前
|
安全 Java API
Java中的Lambda表达式:简化代码的现代魔法
在Java 8的发布中,Lambda表达式的引入无疑是一场编程范式的革命。它不仅让代码变得更加简洁,还使得函数式编程在Java中成为可能。本文将深入探讨Lambda表达式如何改变我们编写和维护Java代码的方式,以及它是如何提升我们编码效率的。
|
1月前
|
安全 Java API
Java中的Lambda表达式与Stream API的高效结合####
探索Java编程中Lambda表达式与Stream API如何携手并进,提升数据处理效率,实现代码简洁性与功能性的双重飞跃。 ####
26 0
|
3月前
|
JavaScript 前端开发
JavaScript基础知识-函数的参数
关于JavaScript函数参数基础知识的介绍。
37 4
JavaScript基础知识-函数的参数
|
3月前
|
JavaScript 前端开发
JavaScript 函数参数
JavaScript 函数参数
38 3
|
5月前
|
JavaScript 前端开发 网络架构
JavaScript编码之路【对象的增强、ES6新特性之函数的默认值设置 、rest参数 (剩余参数)、拓展运算符、对象与数组的解构赋值】
JavaScript编码之路【对象的增强、ES6新特性之函数的默认值设置 、rest参数 (剩余参数)、拓展运算符、对象与数组的解构赋值】
61 1
|
6月前
|
JavaScript
js -- 函数总结篇,函数提升、动态参数、剩余参数、箭头函数、this指向......
js -- 函数总结篇,函数提升、动态参数、剩余参数、箭头函数、this指向......
|
7月前
|
JavaScript 前端开发
【专栏】`Function.prototype.apply` 在JavaScript中用于动态设定函数上下文(`this`)和参数列表
【4月更文挑战第29天】`Function.prototype.apply` 在JavaScript中用于动态设定函数上下文(`this`)和参数列表。它接受两个参数:上下文对象和参数数组。理解`apply`有助于深入JS运行机制。文章分三部分探讨其原理:基本概念和用法、工作原理详解、实际应用与注意事项。在应用中要注意性能、参数类型和兼容性问题。`apply`可用于动态改变上下文、传递参数数组,甚至模拟其他语言的调用方式。通过深入理解`apply`,能提升代码质量和效率。
45 3