Lambda 表达式的基础语法
1、基础语法
java8引入新的操作符“->”箭头操作符,箭头操作符将Lambda表达式分成两部分
左侧:Lambda 表达式的参数列表,对应抽象方法的参数列表
右侧:需要执行的功能,对应抽象方法要实现的功能
2、秘诀
左右遇一括号省, 左侧推断类型省,
3、语法格式
语法格式一:无参数,无返回值
() ->System.out.println("Hello");
@Test
public void test1() {
int num = 2;//jdk 1.7前,必需是final,才能被同级调用
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println("Hello" + num);
}
};
r.run(); System.out.println("---------------------");
//使用Lambda表达式
Runnable r2 = () -> System.out.println("Hello Lambda");
r2.run();
}
语法格式二:有一个参数,无返回值
@Test
public void test2() {
Consumer<String> con = (x) -> System.out.println(x);
con.accept("有一个参数");
}
语法格式三:若只有一个参数,小括号可以省略不写
@Test
public void test2() {
Consumer<String> con = x -> System.out.println(x);
con.accept("有一个参数");
}
语法格式四:有两个参数,有返回值,并且Lambda体中有多条语句
@Test
public void test4() {
Comparator<Integer> com = (x, y) -> {
System.out.println("函数式接口");
return Integer.compare(x, y);
};
}
语法格式五:有两个参数,有返回值,并且Lambda体内只有一条语句, return 和{}都可以不写
@Test
public void test5() {
Comparator<Integer> com = (x, y) -> Integer.compare(x, y); }
语法格式六:Lambda 表达式的参数列表中数据类型可以省略不写,
因为JVM编译器通过上下文推断出,数据类型,即“类型推断”
(Integer x,Integer y) -> Intrger.compare(x,y);
4、Lambda 表达式需要“函数式接口”的支持
函数式接口:接口中只有一个抽象方法的接口,可用@FunctionalInterface修饰,可以检查是否是函数式接口
//接口,只有一个参数,有返回值的接口
package Clock;
@FunctionalInterface
public interface MyFun {
public Integer getValue(Integer x); }
//需求:对一个数进行运算
@Test
public void test7() {
Integer num = operation(100, x -> x * x);
System.out.println(num);
System.out.println(operation(200, y -> y + 200)); } public Integer operation(Integer num, MyFun my) {
return my.getValue(num);
}
Lambda 表达式的基础语法的更多相关文章
- iOS-----正则表达式的基础语法
正则表达式简单语法总结 一.什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索特定的字符串,替换特定字符等功能,有许多开发语言工具,都内嵌支持正则表达式.那么一个正 ...
- 深入浅出java 8 lambda表达式--零基础一分钟入门
lambda从使用上来说,第一感觉直白的理解就是,少了很多不必要的匿名回调类的写法,比如: public static void main(String[] args) { PlatformQuery ...
- 函数:lambda表达式 - 零基础入门学习Python021
函数:lambda表达式 让编程改变世界 Change the world by program lambda表达式 Python允许使用lambda关键字来创建匿名函数.我们提到一个新的关键字:匿名 ...
- 记关于 Lambda 表达式的基础写法
namespace MyLambda { public delegate void Action<in T1, in T2, in T3, in T4, in T5, in T6, in T7, ...
- JDK8新特性02 Lambda表达式02_Lambda语法规则
//函数式接口:只有一个抽象方法的接口称为函数式接口. 可以使用注解 @FunctionalInterface 修饰 @FunctionalInterface public interface MyF ...
- Java8新特性 -- Lambda基础语法
Lambda 表达式的基础语法: Java8引入了一个新的操作符 “->” 该操作符称为箭头操作符或Lambda操作符, 该操作符将Lambda表达式拆分为两部分: 左侧: Lambda表达式 ...
- JDK8--03:lambda表达式语法
对于lambda表达式的基础语法,一个是要了解lambda表达式的基础语法,另外一个是需要了解函数式接口 一.lambda表达式基础语法描述 java8中引入了新的操作符 -> ,可以称为l ...
- java8新特性之——lambda表达式的使用
lambda表达式简介 个人理解,lambda表达式就是一种新的语法,没有什么新奇的,简化了开发者的编码,其实底层还是一些常规的代码.Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解 ...
- Java8——Lambda表达式
/* * 一.Lambda 表达式的基础语法:Java8中引入了一个新的操作符 "->" 该操作符称为箭头操作符或 Lambda 操作符 * 箭头操作符将 Lambda 表达 ...
随机推荐
- STS或eclipse中导入新项目出现红色感叹号红色叉叉的问题
maven项目 原因: jar包缺失 没有正确配置Maven仓库 解决: Window->Preferences->Maven->Installations->Add 添加你的 ...
- 如何使用 Python 统计分析 access 日志?
一.前言 性能场景中的业务模型建立是性能测试工作中非常重要的一部分.而在我们真实的项目中,业务模型跟线上的业务模型不一样的情况实在是太多了.原因可能多种多样,这些原因大大降低了性能测试的价值. 今天的 ...
- Vue.js源码解析-Vue初始化流程
目录 前言 1. 初始化流程概述图.代码流程图 1.1 初始化流程概述 1.2 初始化代码执行流程图 2. 初始化相关代码分析 2.1 initGlobalAPI(Vue) 初始化Vue的全局静态AP ...
- Boost 矩形布尔运算
本文主要介绍boost库中矩形布尔运算的思路和代码解析.在此感谢Intel对开源事业的贡献. 基本概念 图形的插入 所有的操作的第一步都是进行图形的插入,我们需要声明定义好我们要使用的图形类型,以矩形 ...
- 微信获取信息发生错误(两个access_token的区别),错误代码:40001,说明:invalid credential, access_token is invalid or not latest hints
微信有两个access_token,一个是基础access_token,一个是网页授权access_token. 想要获取不带unionid的用户信息(以下链接)使用基础access_token ht ...
- 【Azure 应用服务】Azure Function集成虚拟网络,设置被同在虚拟网络中的Storage Account触发,遇见Function无法触发的问题
一切为了安全,所有的云上资源如支持内网资源访问,则都可以加入虚拟网络 问题描述 使用Azure Function处理Storage Account中Blob 新增,更新,删除等情况.Storage A ...
- GetModuleFileName函数的用法
函数的功能 获取exe可执行文件的绝对路径. 用法 通过获取到exe的路径,可以获取到程序路径下(父路径或者子路径)的一些其它文件路径. 函数原型 DWORD WINAPI GetModuleFile ...
- ACM、OI、OJ题目常用代码模板
仓库源码地址:https://github.com/richenyunqi/code-templates 本仓库主要提供 ACM.OI.OJ.PAT.CSP 题目中常见算法和数据结构的实现,它们都以基 ...
- Android Studio用上国产杰出代表夜神模拟器
背景介绍 在Windows上除了官方的AVD(Android Virtual Device)我们还可以使用更加便捷的国产安卓模拟器,比如杰出的代表就是夜神模拟器. 我们现在是假设你已经安装好了Andr ...
- 春风十里不如你,全新Windows UI 3(WinUI 3) 的第一个实现Project Reunion 0.5
什么是WinUI Windows UI库 (WinUI) 是适用于 Windows 桌面应用程序和 UWP 应用程序的本机用户体验 (UX) 框架. WinUI is a user interface ...