四大函数式接口(必需掌握)

四大函数式接口(必需掌握)

  • lambda表达式、链式编程、函数式接口、Stream流式计算=====很重要

  • 函数式接口: 只有一个方法的接口

    • @FunctionalInterface
      public interface Runnable {
          public abstract void run();
      } 
       // 泛型、枚举、反射 
       // lambda表达式、链式编程、函数式接口、Stream流式计算
       // 超级多FunctionalInterface 
       // 简化编程模型,在新版本的框架底层大量应用! 
       // foreach(消费者类的函数式接口)
      
      在这里插入图片描述
      • Function函数式接口

        在这里插入图片描述

        /**
         * 函数型接口
         * Function 函数式接口:有一个输入参数,有一个输出参数
         * 只要是函数式接口,就可以用lambda表达式简化
         */
        public class FunctionTest {
            public static void main(String[] args) {
                /*Function function = new Function<String,String>() {
                    @Override
                    public String apply(String o) {
                        return o;
                    }
                };*/
                // lambda表达式简化
                Function function = (o) -> {
                    return o;
                };
                System.out.println(function.apply("123"));
            }
        }
        
  • Predicate断定型接口

    • 有一个输入参数,返回值只能是 布尔值!

    • 在这里插入图片描述
    • public class PredicateTest {
          public static void main(String[] args) {
              // 判断字符串是否为空
             /* Predicate<String> predicate = new Predicate<String>() {
                  @Override
                  public boolean test(String s) {
                      return s.isEmpty();
                  }
              };*/
              /*Predicate<String> predicate = (s)->{
                  return s.isEmpty();
              };*/
              Predicate<String> predicate = s -> s.isEmpty();
              System.out.println(predicate.test("123"));
          }
      }
      
  • Consumer 消费型接口

    在这里插入图片描述
    • public class ConsumerTest {
          /**
           * Consumer 消费型接口: 只有输入,没有返回值
           */
          public static void main(String[] args) {
              /*Consumer<String> consumer = new Consumer<String>() {
                  @Override
                  public void accept(String s) {
                      System.out.println(s);
                  }
              };*/
              /*Consumer<String> consumer = (s)->{
                  System.out.println(s);
              };*/
              Consumer<String> consumer = s -> System.out.println(s);
              consumer.accept("123");
          }
      }
      
  • Supplier 供给型接口

    在这里插入图片描述
    • public class SupplierTest {
          /**
           * Supplier  供给型接口
           */
          public static void main(String[] args) {
              /*Supplier supplier = new Supplier<String>() {
                  @Override
                  public String get() {
                      return "123";
                  }
              };*/
              /*Supplier supplier = ()->{
                  return "123";
              };*/
              Supplier supplier = () -> "123";
              System.out.println(supplier.get());
          }
      }
      
posted @ 2021-05-04 15:18  saxon宋  阅读(298)  评论(0)    收藏  举报