Java8新特性
人在江湖漂呀个泊
这个作者很懒,什么都没留下…
展开
-
Java8实战——Stream-流的概念
流 集合与流 流操作一、流概念: 从支持数据处理操作的源生成的元素序列元素序列:流提供了一个接口,可以访问特定元素类型的一组有序值。何谓有序,就是说我们一般是按顺序取用值,而不是随机取用的。源:流会使用一个提供数据的源,如集合、数组、输入/输出资源;从有序集合生成流,会保留原有顺序;由列表生成的流,七元素顺序与列表一致数据处理操作:流的数据处理功能支持类似数据的操...原创 2020-01-19 16:55:19 · 244 阅读 · 0 评论 -
Java8实战——Lambda-类型检查、类型推断、局部变量限制
类型检查 类型推断 局部变量限制一、类型检查1.1目标类型Lambda表达式的类型是从上下文中推断出来的,为目标类型通过流程图我们可以得出: 通过上下文找出实际需要的目标类型(哪个函数式接口),然后根据抽象方法的函数描述符和我们给定的Lambda表达式的签名进行校验,从而检查出Lambda的类型是否无误注意:如果Lambda抛出一个异常,那么抽象方法所声明的throws语...原创 2020-01-19 11:06:32 · 625 阅读 · 0 评论 -
Java8实战——Lambda-复合Lambda表达式
许多函数式接口,比如传递Lambda表达式的Comparator、Predicate、Function都有进行复合的默认方法。因此,我们可以将简单的Lambda表达式复合成复杂的表达式。一、比较器复合 1、升序排序list.sort(Comparator.comparing(Apple :: getWeight)); 2、逆序排序#C...原创 2020-01-19 09:58:40 · 439 阅读 · 0 评论 -
Java8实战——Lambda-方法引用
前言: 方法引用是Lambda表达式的快捷语法,返回的函数式接口的实例,而Lambda表达式可理解为匿名函数的简洁写法。 当Java8中没有与我们所写的Lambda表达式签名一致的函数式接口时,可以通过自定义函数式接口来解决。一、概念1.方法引用是通过目标引用和方法名称来指向一个方法,是Lambda表达式的一种快捷写法目标引用:要使用的类方法名称:要引用的方法的名称...原创 2020-01-17 15:20:17 · 267 阅读 · 0 评论 -
Java8实战——Lambda-函数式接口、函数描述符
函数式接口定义 函数描述符 函数式接口、函数描述符和Lambda表达式关系 Java8中新增的函数式接口 Lambda表达式异常处理一、函数式接口1.1定义函数式接口,是指仅仅包含一个抽象方法的接口函数式接口中,唯一抽象方法的定义: 1、JDK8接口中的静态方法和默认方法,都不算是抽象方法。 2、接口默认继承java.lang.Object,所以如果接口显示声明覆盖了...原创 2020-01-15 17:55:27 · 662 阅读 · 0 评论 -
Java8实战——Lambda-语法
一、概念lambda表达式可理解为:简洁地表示可传递的匿名函数的一种方式。 1、匿名:不像普通方法那样有一个明确的名称 2、函数:lambda不像方法那样属于某个特定的类,但和方法一样,lambda有参数列表、方法主体、返回值、可抛出的异常列表 3、传递:lambda可以作为参数 传递给方法或者存储在变量中 (个人理解其实就是函数式编程) 4、简洁:无需像匿名类那样写很多的模板...原创 2020-01-10 11:49:39 · 233 阅读 · 0 评论 -
Java8实战——行为参数化
一、概念行为参数化是一种可以处理频繁变更的需求的一种软件开发模式。一个方法接受多个不同的行为作为参数,在内部使用它们,从而实现不同的行为能力。即:将不同的代码块(行为)当做参数传递给方法,使得方法可以执行多种行为。二、思路演变需求设定:农场主要求根据苹果的重量挑选苹果,重量大于150g1、在方法中直接写行为逻辑public List<Apple> getApplesByW...原创 2020-01-10 09:31:50 · 202 阅读 · 0 评论