JDK8新特性 - 函数式接口

目录

1.函数式接口基础概念

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

3.@FunctionalInterface


1.函数式接口基础概念

      一个接口中,要求实现类实现的抽象方法有且只有一个,这样的接口称为函数式接口,上Demo:

//接口中有且只有一个实现类必须实现的方法,是函数式接口
interface test1{
    void test();
}
//接口中有两个实现类必须实现的方法,非函数式接口
interface test2{
    void test1();
    void test2();
}
//接口中没有实现类必须实现的方法,非函数式接口
interface test3{

}
//接口中虽然没有方法,但可以从父接口继承到一个抽象方法,是函数式接口
interface test4 extends test1{

}
//接口中虽然有两个方法,但被default定义过的方法是不需要子类实现的,所以这个接口需要实现类实现的抽象方法只有test5()一个,是函数式接口
interface test5{
    void test5();
    default void test(){}
}
//接口中虽然有两个方法,但toString()可以从父类Object继承,实现类在实现此接口时此方法可以不重写,所以这个接口需要实现类实现的抽象方法只有test6()一个,是函数式接口
interface test6{
    void test6();
    String toString();
}
//接口中只有一个方法,toString()可以从父类Object继承,实现类实现该接口时可以重写也可以不重写,那么此接口就不是函数式接口
interface test7{
    String toString();
}
//此接口中有四个方法,test8()为实现类必须重写的方法,test9()有默认实现无需重写,test10()静态方法无需重写,toString()从Object继承可重写也可不重写,所以实现类必须重写的方法只有test8()一个,是函数式接口
interface test8{
    void test8();
    default void test9(){}
    static void test10(){}
    String toString();
}

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

函数式接口参数类型返回类型用途
ConsumerTvoid对类型T参数操作,无返回结果,包含方法 void accept(T t)
SupplierT返回T类型参数,方法时 T get()
FunctionTR对类型T参数操作,返回R类型参数,包含方法 R apply(T t)
PredicateTboolean断言型接口,对类型T进行条件筛选操作,返回boolean,包含方法 boolean test(T t)

Consumer<T>:消费型接口(void accept(T t))

特点:有参数,无返回值类型的接口

Supplier<T> 供给型接口(T get())

特点:无参数,无返回值的接口

Function<T, R>:函数型接口(R apply(T t))

特点:方法的参数是函数

Predicate<T>:断言型接口(boolean test(T t))

特点:输入一个参数,输出一个boolean类型的返回值。

3.@FunctionalInterface

      作用:写在接口之前,可以判断当前接口是否为函数式接口,如果不是函数式接口则会报错,功能类似于@Override判断是否为重写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值