一、背景1、简介在Java 8中,随着函数式接口(Functional Interface)的引入,我们迎来了一系列新的编程范式和工具。其中, Supplier和Consumer是两个非常基础且常用的函数式接口。对于初学者来说,理解并学会使用…
publicclassLongSupplierTest{publicstaticvoidmain(String[] args){LongSuppliersupplier1=() ->1000L; System.out.println(supplier1.getAsLong()); } } 自定义Supplier 我们也可以使用@FunctionalInterface注解来自定义一个Supplier类。 importjava.util.Random;@FunctionalInterfaceinterfaceUserSupplier{ UsergetUser()...
Consumer<String> second = s -> System.out.println(s +6);// 先执行 first 这个 Consumer,接着执行 second 这个 ConsumerConsumer<String> combination = first.andThen(second); combination.accept("GTA");// 打印:GTA5 GTA6 Supplier 接口 Supplier 接口只定义了一个get()方法,该方法不接受任何参数并返...
使用Supplier也很简单,与Function接口一样,Supplier使用lambda表达式和方法引用来实例化。 publicclassSupplierTest{publicstaticvoidmain(String[]args){Supplier<String>supplier1=()->10;System.out.println(supplier1.get());LocalDateTimenow=LocalDateTime.now();Supplier<String>supplier2=()->now.toString();//也...
一. Supplier接口 供应商: 从单词意思上看,它可以提供(生产)一个 泛型对象 实列 ,源码如下: @FunctionalInterfacepublic interfaceSupplier<T>{/** * Gets a result. * * @return a result */Tget();} 实列: publicclassSupplierTest{Stringname="小明";SupplierTest(){System.out.println(name);}public...
这几个接口都在 java.util.function 包下的,分别是Consumer(消费型)、supplier(供给型)、predicate(谓词型)、function(功能性),相信有了后面的解释,你应该非常清楚这个接口的功能了。 那么,下面,我们从具体的应用场景来讲讲这个接口的用法! 1 Consumer接口 ...
Consumer 接口:例如 forEach 方法 // forEach 方法,遍历 Stream 流中的元素,T 类型是 Stream 流的元素类型voidforEach(Consumer<?superT> action); Supplier 接口:例如 generate 方法 // 生成一个无限长度的 Stream 流publicstatic<T> Stream<T>generate(Supplier<T> s){ ...
8. 9. 10. 在上面的示例中,我们创建了一个Supplier对象,用于生成随机数。通过使用Lambda表达式() -> new Random().nextInt(),我们可以方便地将生成随机数的逻辑作为Supplier来使用。然后,我们调用get方法获取生成的随机数。 总结 Java函数式编程中的Consumer、Predicate和Supplier是三个常用的函数式接口,它们分别用...
Consumer 接口:例如 forEach 方法 // forEach 方法,遍历 Stream 流中的元素,T 类型是 Stream 流的元素类型voidforEach(Consumer<?superT>action); Supplier 接口:例如 generate 方法 // 生成一个无限长度的 Stream 流publicstatic<T>Stream<T>generate(Supplier<T>s){Objects.requireNonNull(s);returnStreamSuppo...
消费型接口Consumer java.util.function.Consumer 接口则正好与Supplier接口相反,它不是生产一个数据,而是消费一个数据,其数据类型由泛型决定。 Consumer 接口中包含抽象方法void accept(T t) ,意为消费一个指定泛型的数据。 代码案例Consumer 代码语言:javascript ...