当前位置:   article > 正文

JAVA802_函数式接口的概述、Supplier供给型接口、consumer消费型接口、Predicate断定型接口、Function函数型接口_supplier是什么返回值

supplier是什么返回值

①. 函数式接口的概述

  • ①. 如何检测一个接口是不是函数式接口呢?(函数式接口:有且仅有一个抽象方法的接口)
  1. @FunctionalInterface
  2. 放在接口定义的上方:如果接口是函数式接口,编译通过;如果不是,编译失败
  • ②. 注意
  1. 我们自己定义函数式接口的时候,@FunctionalInterface 是可选的,就算我不写这个注解,只要保证满足函数式接口定义的条件,也照样是函数式接口。但是,建议加上该注解
  2. 如果方法的参数是一个函数式接口,我们可以使用Lambda表达式作为参数传递
    在这里插入图片描述

②. Supplier 没有参数,只有返回值

  • ①. T get( ):获取结果

  • ②. 该方法不需要参数,它会按照某种逻辑(由Lambda表达式实现)返回一个数据

  • ③.Supplier<T> 接口也称为生产型接口,如果我们指定了接口泛型是什么类型,那么接口中的get方法就会生产什么类型的数据供我们使用

在这里插入图片描述

③. consumer 只有输入,没有返回值

  • ①. void accept​(T t):对给定的参数执行此操作

  • ②.default Consumer<T> andThen​(Consumer after):返回一个组合的 Consumer,依次执行此操作,然后执行 after操作

  • ③. Consumer<T> 接口也被称为消费型接口,它消费的数据的数据类型由泛型指定

public class ConsumerDemo {
    public static void main(String[] args) {
//        operatorString("皮卡丘",(String s) -> {
//            System.out.println(s);
//        });

        operatorString("皮卡丘", s -> System.out.println(s));
//        operatorString("皮卡丘",System.out::println);

//        operatorString("林青霞", s -> {
//            System.out.println(new StringBuilder(s).reverse().toString());
//        });

        operatorString("皮卡丘", s -> System.out.println(new StringBuilder(s).reverse().toString()));
        System.out.println("--------");

        operatorString("皮卡丘", s -> System.out.println(s), s -> System.out.println(new StringBuilder(s).reverse().toString()));
    }

    //定义一个方法,用不同的方式消费同一个字符串数据两次
    private static void operatorString(String name, Consumer<String> con1, Consumer<String> con2) {
//        con1.accept(name);
//        con2.accept(name);
        con1.andThen(con2).accept(name);
    }

    //定义一个方法,消费一个字符串数据
    private static void operatorString(String name, Consumer<String> con) {
        con.accept(name);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

在这里插入图片描述

④. Predicate有一个输入参数,返回boolean

  • ①. boolean test​(T t):对给定的参数进行判断(判断逻辑由Lambda表达式实现),返回一个布尔值

  • ②. 断定型接口:有一个输入参数,返回值只能是布尔值
    在这里插入图片描述

⑤. Function:有一个输入参数,有一个输出

  • ①. R apply​(T t):将此函数应用于给定的参数

  • ②. default <V> Function andThen​(Function after):返回一个组合函数,首先将该函数应用于输入,然后将after函数应用于结果
    在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/995356
推荐阅读
相关标签
  

闽ICP备14008679号