你的无畏来源于无知.--<三体> 在上一篇文章(传送门)中介绍了Comparator复合,这次我们来介绍一下其他的复合Lambda表达式. Consumer复合 Consumer接口中,有一个默认方法andThen,它的入参还是Consumer接口的实例.做完上一个Consumer的操作以后,再做当前Consumer的操作,就像工厂的流水线一样,比如: Consumer<Mask> brand = m -> m.setBrand("3M"); Consum…
弱小和无知不是生存的障碍,傲慢才是.--<三体> 什么是Lambda表达式 Lambda表达式是表示可传递匿名函数的一种简洁方式,Lambda表达式没有名称,但是有参数列表.函数主体.返回类型,还可能有一个可以抛出的异常列表.它是Java8新增的特性,有了它我们再也不用像之前那样写一堆笨重的匿名类代码了,我们先来体验一下. 欢迎关注微信公众号:万猫学社,每周一分享Java技术干货. 与匿名函数对比 下面我们先举个例子,有这样一个表示口罩的类: package one.more.study; /…
城市就是森林,每一个男人都是猎手,每一个女人都是陷阱.--<三体> 在哪使用Lambda表达式? 在上一篇文章(传送门)中介绍了Lambda表达式的基本语法,其中的举了一个Lambda表达式的例子,就是按照品牌给口罩列表进行排序: maskList.sort((Mask o1, Mask o2) -> o1.getBrand().compareTo(o2.getBrand())); 这里使用的sort方法的参数类型是Comparator<T>,我们就是把Lambda表达式作为…
我们都是阴沟里的虫子,但总还是得有人仰望星空.--<三体> 在之前的文章中介绍了Lambda表达式的基本语法和正确使用姿势,这次我来介绍一些Lambda更简洁的用法. 欢迎关注微信公众号:万猫学社,每周一分享Java技术干货. 类型推断 编译器可以通过函数式接口推断出Lambda表达式的参数类型,所以在编写Lambda表达式时,可以省略参数类型.比如: Comparator<Mask> comparator = (Mask o1, Mask o2) -> o1.getBran…
失去人性,失去很多:失去兽性,失去一切.--<三体> 在Java8支持Lambda表达式以后,为了满足Lambda表达式的一些典型使用场景,JDK为我们提供了大量常用的函数式接口.它们主要在 java.util.function 包中,下面简单介绍几个其中的接口及其使用示例. Supplier接口 Supplier接口是对象实例的提供者,定义了一个名叫get的抽象方法,它没有任何入参,并返回一个泛型T对象,具体源码如下: package java.util.function; @Functio…
给岁月以文明,而不是给文明以岁月.--<三体> 在上一篇文章(传送门)中介绍了JDK为我们提供的常用函数式接口,JDK不仅提供的这些函数式接口,其中一些接口还为我们提供了实用的默认方法,这次我们来介绍一下Comparator复合. 欢迎关注微信公众号:万猫学社,每周一分享Java技术干货. Comparator的使用 在之前文章的例子中,我们使用Comparator.comparing静态方法构建了一个Comparator接口的实例,我们再来简单介绍一下.先来看一下Mask类是怎么写的: pa…
接触了cocos2dx 3.0,就必须得看C++ 11了.有分享过帖子:[转帖]漫话C++0x(四) —- function, bind和lambda.其实最后的Lambda没太怎么看懂. 看不懂没关系,会用就行.可惜是连用都要思考半天.其实,查找根源是定义没有搞明白. 以后买东西,用之前,先看说明书才是必要的. ---------------------------------开始正文粘贴----------------------------------------- 一.Lambda表达式…
系列文章 二.一生挚友redo log.binlog<死磕MySQL系列 二> 三.MySQL强人"锁"难<死磕MySQL系列 三> 四.S 锁与 X 锁的爱恨情仇<死磕MySQL系列 四> 五.如何选择普通索引和唯一索引<死磕MySQL系列 五> 如果你对索引的知识点还不太清楚,可以直接通过传送门查看咔咔总结的索引知识点. 揭开MySQL索引神秘面纱 索引是为加速查询速度,创建的索引也符合所有规则,但MySQL就是不使用理想的索引,导致…
static class UserT { String name; public UserT(String zm) { this.name=zm; } public String getName() { return name; } public void setName(String name) { this.name = name; } } static class Student { String firstName; String lastName; Double grade; Doub…
Lambda表达式是一个匿名函数.C++ 11和 java 8 相继引入了有关对Lambda表达式的支持. Lambda表达式对于高级语言而言并不是必要的,对于Java而言它的功能和一个简易的接口差不多,而C++也有传统的函数指针.但即便如此,lambda表达式还是一项颇受重视的高级语言新特性,因为它可以大大简化我们的代码,也提供了一条函数式编程的捷径. 简而言之,一个Lambda表达式可以看作一个变量.对于这种变量的类型java语言中引入了很多种.我们主要来研究使用比较多的Function接口…