• Java 四大函数式接口(函数型/断定型/消费型/供给型)


    参考

    介绍

    java.util.function 包下面还有很多接口,不仅仅是当前文章说明的四种。

    为什么要学习这四种接口呢?因为 java 很多源码都使用了这些接口,另外自己要做一些实现的时候也可以直接使用,无需再单独定义。

    接口 描述 方法 类型
    Interface Consumer 表示接受单个输入参数并且不返回任何结果的操作。 与大多数其他功能接口不同, Consumer预计会通过副作用运行。 accept(Object) 消费型
    Interface Function<T,R> 表示接受一个参数并生成结果的函数。 apply(Object) 函数型
    Interface Predicate 表示一个参数的谓词(布尔值函数)。 test(Object) 断定型
    Interface Supplier 每次调用供应商时都不要求返回新的或不同的结果。 get() 供给型

    代码

    package stream;
    
    import java.util.function.Consumer;
    import java.util.function.Function;
    import java.util.function.Predicate;
    import java.util.function.Supplier;
    
    /**
     * @Author 夏秋初
     * @Date 2022/3/4 10:11
     */
    public class Test {
        public static void main(String[] args) {
            // 表示接受单个输入参数并且不返回任何结果的操作。
    //        Consumer<String> consumer = (t)->{
    //            System.out.println(t);
    //        };
            Consumer<String> consumer = (t)->System.out.println(t);
            consumer.accept("我是 Consumer");
            // 表示接受一个参数并生成结果的函数。
    //        Function<String, String> function = (t)->{
    //            return t+" Function";
    //        };
            Function<String, String> function = (t)->t+" Function";
            System.out.println(function.apply("ABC"));
            // 根据给定的参数计算此谓词。
    //        Predicate<String> predicate = (t)->{
    //            return t.length()>0;
    //        };
            Predicate<String> predicate = (t)->t.length()>0;
            System.out.println(predicate.test("ABC"));
            // 每次调用时都不要求返回新的或不同的结果。
    //        Supplier<String> supplier = ()->{
    //            return " Supplier ";
    //        };
            Supplier<String> supplier = ()->" Supplier ";
            System.out.println(supplier.get());
        }
    }
    
    

    运行结果

    我是 Consumer
    ABC Function
    true
     Supplier 
    
    进程已结束,退出代码为 0
    
  • 相关阅读:
    C语言第0次作业
    C博客作业01分支、顺序结构
    C博客第02次作业循环结构
    关于编写有效用例的12秘诀
    关于调用FTP中遇到的问题以及解决方案
    关于FtpWebRequest.Timeout属性的理解
    WPF中四种不同的测量单位
    关于检查Oracle表及列是否存在SQL语句
    ArcSDE configuration files
    C#判断不同版本的Excel
  • 原文地址:https://www.cnblogs.com/xiaqiuchu/p/15963287.html
Copyright © 2020-2023  润新知