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 ...
随机推荐
- idea的Tomcat的配置
1.创建一个web项目 2.创建项目完成后,配置 点击add 3.点击扳手 选择tomcat Server ----->Local 4.选择tomcat的文件夹路径 点击ok 5.再次点 ...
- Eclipse's Content Assist
在Eclipse里面的辅助智能索引只有"."才会提示,或者手动按alt+/补全提示.因为Eclipse的补全功能的默认设置只有".",其实你只需要稍微修改一下就 ...
- 将spring boot项目打包成jar包
在spring boot项目的pom文件中加入 <packaging>jar</packaging> 生成jar包 文件右键Open In Explorer找到文件所在位置 可 ...
- CentOS7-mysql5.7.35安装配置
一.下载网址 注:mysql从5.7的某个版本之后之后不再提供my-default.cnf文件,不耽误启动,想要自定义配置可以自己去/etc下创建my.cnf文件 全版本:https://downlo ...
- 2021.06.29 mac系统下zsh: command not found:***报错问题
最近老是遇到zsh: command not found:vue,zsh: command not found:nrm, zsh: command not found:tsc, zsh: comman ...
- NET 实现 Cron 定时任务执行,告别第三方组件
原文连接: (96条消息) NET 实现 Cron 定时任务执行,告别第三方组件_.net 定时任务_Phil Arist的博客-CSDN博客 代码: using System.Globalizati ...
- Windows 下TCP长连接保持连接状态TCP keepalive设置
TCP长连接建立完成后,我们通常需要检测网络的连接状态,以反馈给客户做响应的处理.通过设置TCP keepalive的属性,打开socket的keepalive属性,并设置发送底层心跳包的时间间隔.T ...
- k8sdeploy配置文件示例
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: [k8s服务名] namespace: default labels: ...
- 学会规则引擎Drools,让你早点下班
前言 现在有这么个需求,网上购物,需要根据不同的规则计算商品折扣,比如VIP客户增加5%的折扣,购买金额超过1000元的增加10%的折扣等,而且这些规则可能随时发生变化,甚至增加新的规则.面对这个需求 ...
- 顺应潮流,解放双手,让ChatGPT不废话直接帮忙编写可融入业务可运行的程序代码(Python3.10实现)
众所周知,ChatGPT可以帮助研发人员编写或者Debug程序代码,但是在执行过程中,ChatGPT会将程序代码的一些相关文字解释和代码段混合着返回,如此,研发人员还需要自己进行编辑和粘贴操作,效率上 ...