函数式接口定义:
Java内置的四大和核心函数式接口:
Consumer,消费型接口参数类型:T返回类型:void用途:对类型为T的对象应用操作,包含一个方法voidaccept(Tt)@TestpublicvoidconsumerTest(){Stringparam='param';consumer(param,str->Systeout.println('str='+str));}privatevoidconsumer(Stringstr,Consumerconsumer){consumer.accept(str);}Supplier,供给型接口参数类型:无返回类型:T用途:返回类型为T的对象,包含方法Tget()@TestpublicvoidsuppliedTest(){Stringuuid=supplied(()->UUIrandomUUID().toString());Systeout.println('uuid='+uui;}privateStringsupplied(Suppliersupplier){returnsupplier.get();}Function,函数型接口参数类型:T返回类型:R用途:对类型为T的对象应用操作,并返回R类型的对象,包含方法:Rapply(Tt)@TestpublicvoidfunctionTest(){intnum=1;Stringresult=function(num,param->'num='+para;Systeout.println(result);}privateStringfunction(Integernum,Functionfunctio{returnfunctioapply(nu;}Predicate,断定型接口参数类型:T返回类型:boolean用途:确定类型为T的对象是否满足某约束,并返回Boolean值,包含方法:booleantest(Tt)@TestpublicvoidpredicateTest(){Listlist=newArrayList<>();for(inti=0;i<10;i++){list.add(;}ListresultList=predicate(list,num->num%2==0);Systeout.println(resultList);}privateListpredicate(Listlist,Predicatepredicat{ListresultList=newArrayList<>();for(Integernum:list){if(!predicattest(nu){continue;}resultList.add(nu;}returnresultList;}
其他接口:
BiFunction参数类型:T,U返回类型:R用途:对类型为T,U参数应用操作,返回R类型的结果。包含方法Rapply(Tt,Uu)UnaryOperator参数类型:T返回类型:T用途:Function的子接口,对类型为T的对象进行一元运算,并返回T类型的结果。包含方法为Tapply(Tt)BinaryOperator参数类型:T,T返回类型:T用途:Function的子接口,对类型为T的对象进行二元运算,并返回T类型的结果。包含方法为Tapply(Tt1,TtBiConsumer参数类型:T,U返回类型:void用途:对类型为T,U参数应用操作,包含方法voidaccept(Tt,Uu)BiPredicate参数类型:T,U返回类型:Boolean用途:对类型为T,U参数进行判断,包含方法booleantest(Tt,Uu)ToIntFunctionToLongFunctionToDoubleFunction参数类型:T返回类型:int,long,double用途:分别计算int、long、double值的函数IntFunctionLongFunctionDoubleFunction参数类型:int,long,double返回类型:R用途:参数类型分别为int、long、double的函数
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点