Lambda表达式和链式编程
一、Lambda表达式
1. Lambda使用条件
Lambda表达式是 JDK8 的一个新特性,可以认为是对匿名内部类的一种简化,但不是所有的匿名内部类都可以简化为Lambda表达式。
只有函数式接口的匿名内部类才可以使用Lambda表达式来进行简化。
实现函数式接口注解 @FunctionalInterface
2.Lambda标准语法
(参数)->{执行方法} :参数可以无参或者有多个参数。
省略模式:
小括号内参数的类型可以省略,有且只有一个参数,则小括号可以直接省略。
大括号有且只有一个语句,无论是否有返回值。大括号可以省略。
//多个参数
(a, b)-> Boolean.valueOf(a) && Boolean.valueOf(b);
//一个参树
a->Boolean.valueOf(a)
//大括号只有一条语句
ExecutorService executorService= Executors.newFixedThreadPool(5);
executorService.execute(new Runnable() {
@Override
public void run() {
System.out.println("简化");
}
});
executorService.execute(()-> System.out.println("简化"));
Lambda表达式在处理集合操作中,使用非常广泛。
二、链式编程
使用链式编程提高了代码的可读性,使代码非常简洁。
在java中StringBuilder已经实现了链式的写法
StringBuffer buffer=new StringBuffer();
buffer.append("今天要").append("下大雨了,").append("回家收衣服。");
在开发过程中,为了避免频繁向实体类中的变量set赋值,通常使用lombok的 @Builder注解 引入Builder 模式
Third third=Third.builder().AppId("").appSecret("").build();
还可以在实体类使用注解开启链式编程 @Accessors(chain = true)
ThirdMeetingConfig third=new ThirdMeetingConfig();
third.setAppId("").setAppSecret("");
在使用Mybatis-Plus时 , 筛选条件既可以使用Lambda表达式,又可以使用链式编程,编写方便,使代码非常简洁。
Lambda表达式和链式编程的更多相关文章
- ASP.NET MVC学前篇之扩展方法、链式编程
ASP.NET MVC学前篇之扩展方法.链式编程 前言 目的没有别的,就是介绍几点在ASP.NETMVC 用到C#语言特性,还有一些其他琐碎的知识点,强行的划分一个范围的话,只能说都跟MVC有关,有的 ...
- jQuery编程基础精华01(jQuery简介,顶级对象$,jQuery对象、Dom对象,链式编程,选择器)
jQuery简介 什么是jQuery? jQuery就是一个JavaScript函数库,没什么特别的.(开源)联想SQLHelper类 jQuery能做什么?jQuery是做什么的? jQuery本身 ...
- jQuery 筛选器 链式编程操作
$('#i1').next() 下一个标签$('#i1').nextAll() 兄弟标签中,所有下一个标签$('#i1').nextUntil('#ii1') 兄弟标签中,从下一个标签到id为ii1的 ...
- 模仿Masonry链式编程思想
使用masonry 也将近一年多了,它的链式编程方式一直是很吸引我的. 之前一直没空好好思考它是如何实现,直到现在正好自己有空,因此写下链式编程的基本思路. 链式基本的编程形式如 a.property ...
- 由表单验证说起,关于在C#中尝试链式编程的实践
在web开发中必不可少的会遇到表单验证的问题,为避免数据在写入到数据库时出现异常,一般比较安全的做法是前端会先做一次验证,通过后把数据提交到后端再验证一次,因为仅仅靠前端验证是不安全的,有太多的htt ...
- iOS 链式编程探索(Masonry)
看了几篇关于链式编程的文章,还是理解的不透彻,我想这可能是因为我自己对block掌握的不熟练. 我已经明白了,所以,和大家分享一下我的理解!如有问题,麻烦大家指出! 直接看代码吧!关键的注释都有. 我 ...
- 原生JS实现jquery的链式编程。
这是我根据之前遇到的一个面试题,题目:用原生JS实现$("#ct").on("click",fn).attr("id"). 然后看了篇jqu ...
- ios的链式编程笔记
1.Masonry的语法为啥能连续的使用点语法? >> 底层使用的是:用block当函数的返回参数 > 链式编程思想 2. 使用block当函数的返回参数 // 之前开发中比较习惯 ...
- Java链式编程接口
在android开发中显示一个AlertDialog时,常采用下列的写法: new AlertDialog.Builder(getApplicationContext()) .setTitle(&qu ...
- JavaScript系列:模块化与链式编程
模块化:闭包和和函数作用域(JS没有块级作用域ES6之前)构造模块 var man=function(){ var age=12; return { getYear:function(){ retur ...
随机推荐
- Java基础学习——Scanner
import java.util.Scanner; public class HelloWord{ public static void main(String[] args){ Scanner s= ...
- Caused by: java.lang.NoClassDefFoundError: net/minidev/asm/FieldFilter 报错的解决
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'r ...
- kong数据库postgre centos安装一条龙
安装版本可以参考kong.conf PostgreSQL版本,这里要求9.5以上 https://www.cnblogs.com/zhi-leaf/p/11432054.html 安装rpm文件 #y ...
- unidbgrid显示图片
column设置imageoptions属性,visible=true,设置width
- 有时候用uniapp写项目时发现,Map组件在安卓真机可以缩放和移动,但是在ios真机就不行
如果你的地图组件是放到popup组件里,是用弹框打开的,如何ios端不能缩放, 那你一定要看下这个弹框的层级是否比地图层级要高 z-index. 如果高于地图层级,那地图肯定是不能移动和缩放的
- .net core 使用 Nlog 配置文件
nlog.config文件 安装nuget包: NLog.Web.AspNetCore 配置开始 <?xml version="1.0" encoding="utf ...
- 30天帮你一步步学会Python的开源项目
最近发现一个不错的免费开源学习项目:30天学会Python 如果您最近有学习Python的打算,不妨看看这个是否适合你? 项目地址:https://github.com/Asabeneh/30-Day ...
- vsftpd2.3.4 后门笑脸漏洞
漏洞概要 在vsftpd 2.3.4版本中,在登录输入用户名时输入:)类似于笑脸的符号,会导致服务处理开启6200后门端口,直接执行系统命令 漏洞利用 攻击机:kali 2022 msfconsole ...
- Java执行带空格的语句命令,cmd无法识别带空格路径的问题
带空格的会识别不了 先说解决方法: 1:用cmd中的start: 在JAVA中可以如此使用: Runtime.getRuntime().exec("cmd /c start \"\ ...
- MySQL查询练习 (转载)
转载 @香草味的橙子 侵删 Evernote Export body, td { font-family: 微软雅黑; font-size: 10pt } mysql查询练习 新建一个查询用的数据库: ...