搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 隔壁家的程序员 > 37 常用函数式接口

37 常用函数式接口

隔壁家的程序员 2020-07-01

1.1 Supplier 接口

   java.util.function.Supplier<T>接口仅包含一个无参的方法:T get( )。用来获取一个泛型参数指定类型的对象数据。java.util.function.Supplier<T>接口被称之为生产型接口,指定接口的泛型是什么类型,那么接口中的get方法就会生成什么类型的数据

1.1.1 示例代码

   Supplier<T>接口指定为 Integer,那么 get( ) 方法的返回值也只能为 Integer。试图返回其他类型的数据时,编译器无法通过编译。总的来说 Supplier<T>接口是要啥给啥(根据泛型返回一个数据)

37 常用函数式接口



1.2 Consumer 接口

   java.util.function.Consumer<T>接口则正好与 Supplier 接口相反,它不是生产一个数据,而是消费一个数据,其数据类型由泛型决定 。Consumer 接口中包含抽象方法 voidaccept(T t),意为消费一 个指定泛型的数据。

1.2.1 示例代码

37 常用函数式接口

37 常用函数式接口

1.2.2 andThen( ) 方法

  如果一个方法的参数和返回值全都是 Consumer 类型,那么就可以实现效果:消费数据的时候,首先做一个操作,然后再做一个操作,实现组合。而这个方法就是 Consumer 接口中的 default 方法 andThen。

☞ andThen 源码

37 常用函数式接口

☞ 示例代码

37 常用函数式接口

进行组合消费时,谁在前先消费谁。

37 常用函数式接口



1.3 Predicate 接口

   java.util.function.Predicate<T>接口可以对某种类型的数据进行判断,从而得到一个 boolean 值结果。Predicate 接口中包含一个抽象方法:booleantest(T t)用来对指定数据类型数据进行判断的方法,结果:符合返回 true,不符合返回 false

1.3.1 示例代码

37 常用函数式接口

1.3.2 默认方法

  既然是条件判断,就会存在与、或、非三种常见的逻辑关系。其中将两个 Predicate 条件使用“与”逻辑连接起来实现“并且”的效果时,可以使用默认方法 and。实现逻辑关系中的“或”,可以使用默认方法or。实现逻辑关系中的“非”,可以使用默认方法 negate。

☞  and 源代码

37 常用函数式接口

☞  or 源代码

37 常用函数式接口

☞  negate 源代码

37 常用函数式接口and、or、negate 方法都要在 test( ) 方法之前。

☞  示例代码

37 常用函数式接口



1.4 Function 接口

   java.uti1.function.Function<TR>接口用来根据一个类型的数据得到另一个类型的数据,前者称为前置条件,后者称为后置条件。Function 接口中最主要的抽象方法为:Rapply(T t)根据类型 T 的参数获取类型 R 的结果。


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《37 常用函数式接口》的版权归原作者「隔壁家的程序员」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注隔壁家的程序员微信公众号

隔壁家的程序员微信公众号:gh_031840858ed6

隔壁家的程序员

手机扫描上方二维码即可关注隔壁家的程序员微信公众号

隔壁家的程序员最新文章

精品公众号随机推荐