摘要:相关接口简介什么是接口,它代表这样的一个函数,接受一个参数,然后返回一个结果。参数和返回值相互转化的个作为参数的和个作为返回值的相互组合去掉重复的嗯,又到种接口,,,,,。
Function相关接口简介 什么是Function接口?
interface Function
R apply(T t)
表示,接受一个类型为T的参数t,返回一个类型为R的结果。注意:
T和R可以是同一种类型,当然也可以是不同的类型。
这里只接受一个参数。
那么问题来了,我有两个、三个参数怎么办?
什么是BiFunction接口?interface BiFunction
R apply(T t, U u);
表示,接受两个参数t和u,类型分别为T和U的,返回一个类型为R的结果。注意:
T、U和R可以是同一种类型,当然也可以是不同的类型。
这里只接受两个参数。
现在咱们再来看上面的问题,三个参数的时候怎么办?function包下并没有这样的接口,所以咯,自己动手丰衣足食:
public interface TripleFunction更进一步{ R apply(T t, U u, M m); }
function包还很贴心地为我们提供了很多常用的functional接口,其中很大一部分就是和原始类型(Primitive Type)有关的。一旦掌握了其中的规律,可以达到举一反三、事半功倍的效果。下面就跟着彬哥一起来看看吧。
以作为参数的原始类型来划分
DoubleFunction,接受一个类型为double的参数,返回一个结果。
@FunctionalInterface public interface DoubleFunction{ R apply(double value); }
IntFunction,接受一个类型为int的参数,返回一个结果。
@FunctionalInterface public interface IntFunction{ R apply(int value); }
LongFunction,接受一个类型为long的参数,返回一个结果。
@FunctionalInterface public interface LongFunction以作为返回值的原始类型来划分{ R apply(long value); }
ToDoubleFunction,接受一个参数,返回一个类型为double的结果。
@FunctionalInterface public interface ToDoubleFunction{ double applyAsDouble(T value); }
ToIntFunction,接受一个参数,返回一个类型为int的结果。
@FunctionalInterface public interface ToIntFunction{ int applyAsInt(T value); }
ToLongFunction,接受一个参数,返回一个类型为long的结果。
@FunctionalInterface public interface ToLongFunction参数和返回值相互转化的{ long applyAsLong(T value); }
3个作为参数的和3个作为返回值的相互组合、去掉重复的
嗯,又Get到6种functional接口:
DoubleToIntFunction,DoubleToLongFunction,IntToDoubleFunction,IntToLongFunction,LongToDoubleFunction,LongToIntFunction。
再更进一步刚刚咱们划分出来的这个12个functional接口都是和Function相关的(一元),那function包有没有给我们提供其他和BiFunction相关的functional接口呢?
当然有。
那咱们就来看看这些二元的functional接口吧。
ToDoubleBiFunction,接受两个参数,返回一个类型为double的结果。
@FunctionalInterface public interface ToDoubleBiFunction{ double applyAsDouble(T t, U u); }
ToIntBiFunction,接受两个参数,返回一个类型为int的结果。
@FunctionalInterface public interface ToIntBiFunction{ int applyAsInt(T t, U u); }
ToLongBiFunction,接受两个参数,返回一个类型为long的结果。
@FunctionalInterface public interface ToLongBiFunction{ long applyAsLong(T t, U u); }
彬哥,这些只是作为返回值的接口,按照上面一元function的划分,那作为参数和相互转化的二元接口呢?
那些啊,funciton包就并没有提供了,一来不常用,二来啊,经过彬哥的介绍,相信你已经掌握规律了,很容易就写出来了吧?那就作为课后作业如何?
小结这一讲,咱们主要介绍了Function相关的functional接口,按大的方面可以以一元和二元来分类;再细分的话,可以按原始类型作为参数、作为返回值和参数返回值相互转化的类别来划分。
另外呀,可以用function包概述及大纲作为参考手册来回顾和查询。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/71857.html
摘要:目前通常指代基于以太坊或者上的智能合约开发的相关应用。引入以太坊通过的交互流程大致如下总结随着区块链近些年的大红大紫,被推上了风口浪尖,本文从技术的角度大致介绍了一下所涉及的技术要点。 当你开始探索区块链开发,需要了解到这些。 showImg(https://segmentfault.com/img/remote/1460000016608233?w=1370&h=389); 一、DA...
摘要:本人非安全专业相关人士,了解不多,实在惭愧。工作原因,在所负责的内部服务中遭遇了的困扰,在此记录一下学习过程及解决方案。,即服务端请求伪造,是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。通用的解决方案有过滤返回信息。 Update: 掘金评论区有同学提出通过域名获取 IP 地址时可能遭遇攻击,感谢提醒。本人非安全专业相关人士,了解不多,实在惭愧。 说到 Web 安全,我们前端...
摘要:简介原文链接简称是一种轻量级,解释型的编程语言,其函数是一等公民。标准的目标是让任何一种程序设计语言能操控使用任何一种标记语言编写出的任何一份文档。核心规定了如何映射基于的文档结构,以便简化对文档的任意部分的访问和操作。 JavaScript 简介 原文链接 JavaScript ( 简称:JS ) 是一种 轻量级,解释型 的编程语言,其函数是一等公民。众所周知,它是用于网页开发的脚...
摘要:须知与大多数抽象类一样,也有抽象方法,不管不能和抽象类一样在接口中包含具体的方法或变量做为抽象性的例外一般约定接口总以字母或者开头接口中定义的所有方法都必须是,这是接口的特性实现多个接口时,接口中的方法不能有重名。否则会导致致命错误。 须知 与大多数抽象类一样,interface 也有抽象方法,不管不能和抽象类一样在接口中包含具体的方法或变量(做为抽象性的例外) 一般约定接口总以字...
阅读 3162·2019-08-30 15:55
阅读 2944·2019-08-30 13:46
阅读 1446·2019-08-29 17:29
阅读 3513·2019-08-29 11:08
阅读 3438·2019-08-29 11:04
阅读 1088·2019-08-28 18:20
阅读 544·2019-08-26 13:37
阅读 1327·2019-08-26 11:49