美文网首页
jdk8新特性

jdk8新特性

作者: 半只笔芯 | 来源:发表于2020-02-18 23:02 被阅读0次

    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);可以判断是否为空

    相关文章

      网友评论

          本文标题:jdk8新特性

          本文链接:https://www.haomeiwen.com/subject/twknfhtx.html