首页 > 其他 > 详细

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

时间:2021-05-04 17:51:29      阅读:20      评论:0      收藏:0      [点我收藏+]

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

  • 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());
          }
      }
      

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

原文:https://www.cnblogs.com/saxonsong/p/14729545.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!