jdk8新特性

1.如果接口只有一个抽象接口,那么是一个函数式接口
2.如果接口声明了functionalinterface,那么编译器就会以函数式接口的定义来要求
3.如果某个接口只有一个抽象方法,编译器依然会将这个接口看做函数接口

Function <A,B> 接受一个值,返回另外一个
eg : A -> B
默认方法有 compose :接受一个Function对象当参数,先执行参数中function的apply方法,在执行调用方的apply方法
andThen 和compose相反,先执行调用方, 再执行参数中的apply方法

BiFunction<A,B,C> 接受a,b的值,经过处理之后返回c
eg:(A,B) - > return A + B
只有andthen方法,方法中的参数为function,执行完bifunction之后对function中进行处理

高阶函数:
和python一样,一个函数作为返回值,或者是对象传递

interface 中可以有default方法,default方法中有代码实现
interface 中有默认的static 方法,这两种方法都不是抽象方法,不影响函数式接口判定

lambda表达式在日常编写代码的时候,可以当做参数传递,表示代码行为,可增强代码复用性

BinaryOpeatorTest <T,T,T>
表示接受两个相同类型的值,返回一个同类型的值

Predicate
流中filter方法的参数,表示接受任意参数返回boolean值
(T t) -> boolean

Supplier
不接受任何参数,返回任意值 可以用在工厂方法中 也可以用函数引用,构造方法引用
Supplier s = Class:new Class()
() -> T t

Optional
optional可以判断参数是否为空,
Optional<Company> optional = Optional.ofNullable(object);可以判断是否为空

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 当然这篇文章并不时髦,但是我希望记录一些干货,主要涉及常用的 函数式接口、Stream,Collector接口及其...
    苏恨阅读 9,427评论 2 6
  • jdk8 Lambda表达式的基本结构: 一个Lambda表达式可以有零个或多个参数。 参数的类型既可以明确声明,...
    持续进步者阅读 3,602评论 0 3
  • JDK8新特性介绍 JDK8新特性:​ 1,Lambda表达式​ 2,新的日期API​ 3,引入Optional​...
    偏偏爱吃梨阅读 4,014评论 0 2
  • 为什么要学Java8 Java8让你的编程变得更容易 充分稳定的利用计算机硬件资源 Lambda lambda 是...
    李庆雪阅读 9,985评论 0 5
  • 简介 1.速度更快2.代码更少(Lambda表达式)3.强大的Stream API4.便于并行5.最大化减少空指针...
    是小猪童鞋啦阅读 3,255评论 0 0

友情链接更多精彩内容