三、JDK1.8—函数式接口

函数式接口

只包含一个抽象方法的接口,称为函数式接口。 

你可以通过 Lambda 表达式来创建该接口的对象。(若 Lambda 表达式抛出一个受检异常,那么该异常需要在目标接口的抽象方法上进行声明)。


我们可以在任意函数式接口上使用 @FunctionalInterface 注解,这样做可以检查它是否是一个函数式接口,同时 javadoc 也会包含一条声明,说明这个接口是一个函数式接口

@FunctionalInterface
public interface IMyNumCalculation<T1, R> {
 
	public R calculation(T1 t1, T1 t2);
 
//	public R calculationTest(T1 t1, T2 t2); @FunctionalInterface 修饰只能有一个抽象方法
 
}

Java 内置四大核心函数式接口

函数式接口 参数类型返回类型用途
Consumer<T> 消费型接Tvoid 对类型为T的对象应用操 作,包含方法: void accept(T t)

Supplier<T>

供给型接口

T返回类型为T的对象,包 含方法:T get();
Function<T, R> 函数型接口TR对类型为T的对象应用操 作,并返回结果。结果 是R类型的对象。包含方 法:R apply(T t);
Predicate<T> 断定型接口Tboolean确定类型为T的对象是否 满足某约束,并返回 boolean 值。包含方法 boolean test(T t);


Java 内置其他函数式接口

 

函数式接口 参数类型返回类型用途
BiFunction<T, U, R>T, UR 对类型为 T, U 参数应用 操作,返回 R 类型的结 果。包含方法为 R apply(T t, U u); 
UnaryOperator<T> (Function子接口)TT 对类型为T的对象进行一 元运算,并返回T类型的 结果。包含方法为 T apply(T t);
BinaryOperator<T> (BiFunction 子接口)T, TT对类型为T的对象进行二 元运算,并返回T类型的 结果。包含方法为 T apply(T t1, T t2); 
BiConsumer<T, U> T, Uvoid对类型为T, U 参数应用 操作。包含方法为 void accept(T t, U u)
ToIntFunction<T> ToLongFunction<T> ToDoubleFunction<TT

int

long double

分 别 计 算 int 、 long 、 double、值的函数
IntFunction<R> LongFunction<R> DoubleFunction<R>

int

long doubl

R 参数分别为int、long、 double 类型的函数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值