前言


  • Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。
  • Lambda 允许把函数作为参数传递进方法中。
  • 使用 Lambda 表达式可以使代码变的更加简洁紧凑。
  • lambda表达式的重要特征:
    1. 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
    2. 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
    3. 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
    4. 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。

JDK8 之前调用接口的方式是通过匿名内部类,调用接口中的方法。
@FunctionalInterface
public interface FunctionInterface {void get();
}public class FunctionTest {public static void main(String[] args) {FunctionInterface functionInterface = new FunctionInterface() {@Overridepublic void get() {System.out.println("get方法");}};functionInterface.get();}
}
使用Lambda表达式调用接口中的方法
@FunctionalInterface
public interface FunctionInterface {void get();
}public class FunctionTest {public static void main(String[] args) {FunctionInterface ft = () -> {System.out.println("JDK8 Lambda表达式调用:get方法");};ft.get();}
}

() : 表示抽象方法所需的参数列表,(参数1,参数2)
-> : 固定格式
{} :表示抽象方法的方法体

有返回值的Lambda表达式调用方法
@FunctionalInterface
public interface FunctionInterface2 {String get();
}
public class FunctionTest {public static void main(String[] args) {FunctionInterface2 functionInterface2 = () -> {return "有返回值的Lambda表达式调用方法";};System.out.println(functionInterface2.get());/*** 优化:有返回值的Lambda表达式调用方法*/FunctionInterface2 functionInterface3 = () -> "优化:有返回值的Lambda表达式调用方法";System.out.println(functionInterface3.get());}
}
有参数,有返回值的Lambda表达式调用方法
@FunctionalInterface
public interface FunctionInterface3 {String get(String s);
}
public class FunctionTest {public static void main(String[] args) {FunctionInterface3 ft3 = (String s)-> s;System.out.println(ft3.get("有参数,有返回值的Lambda表达式调用方法"));}
}

JDK 8 新特性 之 Lambda表达式相关推荐

  1. 深圳Java培训学习:Java8.0新特性之Lambda表达式--【千锋】

    深圳Java培训学习:Java8.0新特性之Lambda表达式–[千锋] 前言 Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级.本篇文章,主要给大家介绍的是lambda表 ...

  2. Java8 新特性:Lambda 表达式、方法和构造器引用、Stream API、新时间与日期API、注解

    Java8新特性:Lambda 表达式.方法和构造器引用.Stream API.新时间与日期API.注解 1.Java8新特性 1.1.主要的新特性: 1.2.编程风格 2.Lambda 表达式 2. ...

  3. java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合

    java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合 比如,我有一张表: entity Category.java service CategoryServic ...

  4. JDK8新特性之Lambda表达式

    转载自 JDK8新特性之Lambda表达式 什么是Lambda表达式 Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁.当开发者在编写Lambda表达式时,也会随之被编译成 ...

  5. 【java8新特性】——lambda表达式与函数式接口详解(一)

    一.简介 java8于2014年发布,相比于java7,java8新增了非常多的特性,如lambda表达式.函数式接口.方法引用.默认方法.新工具(编译工具).Stream API.Date Time ...

  6. java8新特性之lambda表达式--超级详细版本

    java8新特性之lambda表达式 1.什么是lambda表达式?为什么用它? 2. 为什么Java需要lambda表达式? 3. lambda表达式的语法 4.函数式接口 4.1 什么是函数式接口 ...

  7. java x=8_Java8新特性之lambda表达式

    简介 Java8带来的新特性之一Lambda表达式,又称之为函数式编程,核心思想是将面向对象中的传递对象变为传递行为 语法 expression = (variable) -> anction ...

  8. lambda 对象去重_最火的java8新特性:Lambda 表达式

    主要内容 1. Lambda 表达式 2. 函数式接口 3. 方法引用与构造器引用 4. Stream API 5. 其他新特性 Java 8新特性简介 速度更快 代码更少(增加了新的语法 Lambd ...

  9. java:java8新特性(Lambda 表达式、方法引用、构造器引用、数组引用、Stream API)

    速度更快 对 HashMap .ConcurrentHashMap低层的数据结构(数组+链表+二叉树) 低层的内存结构(将永久区更新为元空间,元空间使用的是物理内存) 代码更少(增加了新的语法 Lam ...

最新文章

  1. MegEngine亚线性显存优化
  2. Spring MVC 学习笔记 对locale和theme的支持
  3. vue配置文件读取_Vue+Spring Boot简单用户登录Demo实现
  4. 服务器硬盘如何验收,系列服务器及存储测试安装验收报告.doc
  5. svn复制出来的java_从svn下载的项目(或从别处拷贝来的)报错的可能情况以及解决经验...
  6. 闪灯什么意思_开夜车被对方闪了一下是什么意思?老司机:灯语都不懂,晚上别开车...
  7. 使用ASP.NET核心应用程序实现存储库模式和工作单元的指南
  8. 读高性能网站建设指南
  9. vscode 翻译_前端新手 VSCode 入门指南
  10. ITIL4 服务管理的四个维度
  11. 《中国区块链产业园15强名录》
  12. xshell4 选中复制,右键粘贴
  13. Pollard rho 算法求解离散对数问题
  14. directive 自定义指令
  15. 重磅!腾讯优图29篇论文入选顶会ECCV 2022
  16. 玉米社:SEM竞价推广预算设置方法
  17. 机器人碰撞检测——生成无碰撞轨迹
  18. 小程序图片电脑开发显示,手机上不显示的问题
  19. 行为识别阅读笔记(paper + parted code):Beyond Frame-level CNN Saliency-Aware 3-D CNN with LSTM for Video Acti
  20. PHP使用QQ邮箱发送邮件无需SMTP服务器

热门文章

  1. python多个变量与字符串判断_python怎么判断变量是否为字符串
  2. Servlet3.0注解配置访问路径和urlParttern配置
  3. Android 面向切面编程-aspjectj应用
  4. (0.2.6)Mysql安装——编译安装
  5. ios 视频知识补充---分解LFLiveKit
  6. 2017.10.25
  7. VA Code编写html(1)
  8. 深入理解 KVC\KVO 实现机制 — KVC
  9. UIView之常用方法
  10. LeetCode Longest Valid Parentheses