2021-06-22

函数式接口

定义

接口中只包含一个抽象方法的接口,Object类中有实现的方法(例如函数式接口Comparator中的equals方法)以及default声明的带方法体的都不算,可以用在接口上面加上@FunctionInterface注解来做校验

java中内置的四种基础的函数式接口

1.消费型函数式接口
2.供给型函数式接口
3.函数型函数式接口
4.断定型函数式接口

相应代码示例以及用法

import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

public class FunctionInterfaceTest {
    public static void main(String[] args) {
        //java内置的四种基础函数型接口
        //1.消费型函数式接口Consumer<T>  有传入参数,无返回参数 accept(T t) 目前粗略的认为可以用来打印日志之类的作用吧
//        Consumer<String> consumer=t->{
//            System.out.println(t);
//        };
        Consumer<String> consumer=System.out::println;
        consumer.accept("我是消费型函数式接口");
        //2.供给型函数式接口Supplier<T>  没有传入参数  有返回参数   T get()方法获得返回值
//        Supplier<Double> supplier=()->Math.random();
        Supplier<Double> supplier=Math::random;
        System.out.println(supplier.get());
        //3.函数型函数式接口Function<T,R> 有一个传入参数  有一个返回参数  R apply(T t)
        Function<String,String> function=(t1)->t1+"嘤嘤嘤";
        System.out.println(function.apply("我是函数型函数接口"));

        //4.断定型函数接口Predicate<T>  一个传入参数  返回 boolean   boolean test(T t)
        Predicate<Integer> predicate=t->2==t.intValue();
        System.out.println(predicate.test(2));

    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容