JDK 8 新特性 之 Lambda表达式
前言
- Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。
- Lambda 允许把函数作为参数传递进方法中。
- 使用 Lambda 表达式可以使代码变的更加简洁紧凑。
- lambda表达式的重要特征:
- 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
- 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
- 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
- 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。
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表达式相关推荐
- 深圳Java培训学习:Java8.0新特性之Lambda表达式--【千锋】
深圳Java培训学习:Java8.0新特性之Lambda表达式–[千锋] 前言 Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级.本篇文章,主要给大家介绍的是lambda表 ...
- Java8 新特性:Lambda 表达式、方法和构造器引用、Stream API、新时间与日期API、注解
Java8新特性:Lambda 表达式.方法和构造器引用.Stream API.新时间与日期API.注解 1.Java8新特性 1.1.主要的新特性: 1.2.编程风格 2.Lambda 表达式 2. ...
- java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合
java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合 比如,我有一张表: entity Category.java service CategoryServic ...
- JDK8新特性之Lambda表达式
转载自 JDK8新特性之Lambda表达式 什么是Lambda表达式 Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁.当开发者在编写Lambda表达式时,也会随之被编译成 ...
- 【java8新特性】——lambda表达式与函数式接口详解(一)
一.简介 java8于2014年发布,相比于java7,java8新增了非常多的特性,如lambda表达式.函数式接口.方法引用.默认方法.新工具(编译工具).Stream API.Date Time ...
- java8新特性之lambda表达式--超级详细版本
java8新特性之lambda表达式 1.什么是lambda表达式?为什么用它? 2. 为什么Java需要lambda表达式? 3. lambda表达式的语法 4.函数式接口 4.1 什么是函数式接口 ...
- java x=8_Java8新特性之lambda表达式
简介 Java8带来的新特性之一Lambda表达式,又称之为函数式编程,核心思想是将面向对象中的传递对象变为传递行为 语法 expression = (variable) -> anction ...
- lambda 对象去重_最火的java8新特性:Lambda 表达式
主要内容 1. Lambda 表达式 2. 函数式接口 3. 方法引用与构造器引用 4. Stream API 5. 其他新特性 Java 8新特性简介 速度更快 代码更少(增加了新的语法 Lambd ...
- java:java8新特性(Lambda 表达式、方法引用、构造器引用、数组引用、Stream API)
速度更快 对 HashMap .ConcurrentHashMap低层的数据结构(数组+链表+二叉树) 低层的内存结构(将永久区更新为元空间,元空间使用的是物理内存) 代码更少(增加了新的语法 Lam ...
最新文章
- MegEngine亚线性显存优化
- Spring MVC 学习笔记 对locale和theme的支持
- vue配置文件读取_Vue+Spring Boot简单用户登录Demo实现
- 服务器硬盘如何验收,系列服务器及存储测试安装验收报告.doc
- svn复制出来的java_从svn下载的项目(或从别处拷贝来的)报错的可能情况以及解决经验...
- 闪灯什么意思_开夜车被对方闪了一下是什么意思?老司机:灯语都不懂,晚上别开车...
- 使用ASP.NET核心应用程序实现存储库模式和工作单元的指南
- 读高性能网站建设指南
- vscode 翻译_前端新手 VSCode 入门指南
- ITIL4 服务管理的四个维度
- 《中国区块链产业园15强名录》
- xshell4 选中复制,右键粘贴
- Pollard rho 算法求解离散对数问题
- directive 自定义指令
- 重磅!腾讯优图29篇论文入选顶会ECCV 2022
- 玉米社:SEM竞价推广预算设置方法
- 机器人碰撞检测——生成无碰撞轨迹
- 小程序图片电脑开发显示,手机上不显示的问题
- 行为识别阅读笔记(paper + parted code):Beyond Frame-level CNN Saliency-Aware 3-D CNN with LSTM for Video Acti
- PHP使用QQ邮箱发送邮件无需SMTP服务器