java8之函数式接口


  1. 函数式接口 的定义
    只包含一个抽象方法的接口称为 函数式接口

注: 可以添加注解 @FunctionalInterface函数式接口 上来检查其是否为正确的函数式接口;

  1. java 内置的四大核心函数式接口
  • 消费型接口 Consumer<T>
    其方法如下:
    accept方法

    其有一个 默认方法andThen:
    默认方法andThen

    例子:
    Consumer接口例子

    输出结果:
    Consumer接口例子结果
  • 供给型接口 Supplier<T>
    其方法如下:
    get方法
  • 函数型接口 Function<T, R>
    其方法如下:
    apply方法

    静态方法:
    identity

    两个默认方法:
    compose andThen默认方法
  • 判定型接口 Predicate<T>
    其方法如下:
    test方法

    静态方法:
    isEqual

    例子:
    isEqual例子

    默认方法:
    and or negate 默认方法
  1. 其他内置的函数式接口
类 型 主 要 方 法
BiPredicate<T, U> boolean test(T t, U u);
BooleanSupplier boolean getAsBoolean();
BiConsumer<T, U> void accept(T t, U u);
ObjIntConsumer<T> void accept(T t, int value);
ObjDoubleConsumer<T> void accept(T t, double value);
ObjLongConsumer<T> void accept(T t, long value);
BiFunction<T, U, R> R apply(T t, U u);
UnaryOperator<T> T apply(T t);
BinaryOperator<T> T apply(T t1, T t2);
ToIntFunction<T> int apply(T t);
ToIntBiFunction<T, U> int apply(T t, U u);
ToDoubleFunction<T> double apply(T t);
ToDoubleBiFunction<T, U> double apply(T t, U u);
ToLongFunction<T> long apply(T t);
ToLongBiFunction<T, U> long apply(T t, U u);

与基本类型 int 相关的函数式接口(8个):
IntConsumer
IntPredicate
IntSupplier
IntFunction<R>
UnaryOperator
BinaryOperator
IntToDoubleFunction
IntToLongFunction

与基本类型 long 相关的函数式接口(8个):
LongConsumer
LongPredicate
LongSupplier
LongFunction<R>
LongUnaryOperator
LongBinaryOperator
LongToIntFunction
LongToDoubleFunction

与基本类型 double 相关的函数式接口(8个)
DoubleConsumer
DoublePredicate
DoubleSupplier
DoubleFunction<R>
DoubleUnaryOperator
DoubleBinaryOperator
DoubleToIntFunction
DoubleToLongFunction

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

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,088评论 19 139
  • Java8 in action 没有共享的可变数据,将方法和函数即代码传递给其他方法的能力就是我们平常所说的函数式...
    铁牛很铁阅读 5,027评论 1 2
  • lambda表达式(又被成为“闭包”或“匿名方法”)方法引用和构造方法引用扩展的目标类型和类型推导接口中的默认方法...
    183207efd207阅读 5,328评论 0 5
  • 简介 概念 Lambda 表达式可以理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主...
    刘涤生阅读 8,461评论 5 18
  • 此摩崖书法古拙自然,富于变化。每笔起处以毫端逆锋,含蓄蕴籍;中间运行遒缓,肃穆敦厚;收笔复以回锋,圆劲流畅。通篇字...
    江南莫之阅读 3,523评论 0 4

友情链接更多精彩内容