今天我们还讲讲Consumer、Supplier、Predicate、Function这几个接口的用法,在 Java8 的用法当中,这几个接口虽然没有明目张胆的使用,但是,却是润物细无声的。为什么这么说呢?这几个接口都在 java.util.function 包下的,分别是Consumer(消费型)、supplier(供给型)、predicate(谓词型)、function(功能性),相信有了后面...
publicclassDemo01Supplier{publicstaticvoidmain(String[]args){//调用getString方法,方法的参数Supplier是一个函数式接口,所以可以传递Lambda表达式String s=getString(()->{//生产一个字符串,并返回return"zjq666";});System.out.println(s);//优化Lambda表达式String s2=getString(()->"zjq666");System.out....
/** * consumer接口测试 */@Testpublicvoidtest_Consumer(){//① 使用consumer接口实现方法 Consumer<String> consumer = new Consumer<String>() { @Override public void accept(String s) { System.out.println(s); } }; Stream<String> stream = Stream.of("aaa", "bbb", "ddd", "ccc", "fff")...
就是 apply(),下面利用 Lambda 表达式实现这个抽象方法并创建 Function 对象Function<Integer, String> function = num ->"GTA"+ num;// 将5这个参数传递给function,得到返回结果Stringresult=function.apply(5);
Consumer 接口:例如 forEach 方法 // forEach 方法,遍历 Stream 流中的元素,T 类型是 Stream 流的元素类型 void forEach(Consumer<? super T> action); Supplier 接口:例如 generate 方法 // 生成一个无限长度的 Stream 流 public static<T> Stream<T> generate(Supplier<T> s) { Objects.requireNonNull...
Consumer<String> combination = first.andThen(second); combination.accept("GTA"); // 打印:GTA5 GTA6 Supplier 接口 Supplier 接口只定义了一个get()方法,该方法不接受任何参数并返回一个结果。 Supplier 这个单词的意思就有「供应者」的意思,给我的感觉就是生产者,不用参数,直接生产一个东西给你。
这几个接口都在java.util.function包下的,分别是Consumer(消费型)、supplier(供给型)、predicate(谓词型)、function(功能性),相信有了后面的解释,你应该非常清楚这个接口的功能了。 那么,下面,我们从具体的应用场景来讲讲这个接口的用法! 1 Consumer接口
这几个接口都在java.util.function包下的,分别是Consumer(消费型)、supplier(供给型)、predicate(谓词型)、function(功能性),相信有了后面的解释,你应该非常清楚这个接口的功能了。 那么,下面,我们从具体的应用场景来讲讲这个接口的用法! 1 Consumer接口
java.util.function.Consumer 接口则正好与Supplier接口相反,它不是生产一个数据,而是消费一个数据,其数据类型由泛型决定。 Consumer 接口中包含抽象方法void accept(T t) ,意为消费一个指定泛型的数据。 代码案例Consumer publicclassDemo01Consumer{/**
java.util.function.Consumer<T> 接口则正好与Supplier接口相反,它不是生产一个数据,而是消费一个数据,其数据类型由泛型决定。 Consumer 接口中包含抽象方法void accept(T t) ,意为消费一个指定泛型的数据。 代码案例Consumer publicclassDemo01Consumer{/** ...