今天看Java8新特性,看到里面有的示例代码调用了这些函数接口,一脸懵啊~
所以博主就查了一下资料,看看这些函数接口有什么用处,让后面容易理解点,废话不多说,我们开始吧!!
1.Consumer接口
顾名思义,这是一个消费型接口,通过传入参数,然后输出值,不会返回值;在通俗点,就是你传一个参数进去,你可以对这个参数进行你想要的调整,然后输出出来,结束!
下面介绍使用方式及常用accept()、andThen()方法,还有其他Consumer接口:
- accept(T t) 提供T类型的输入参数,不返回执行结果
StringBuilder sb = new StringBuilder("Hello ");
//此处就是我定义的规则,进来的字符串拼接“Jack”字符串
Consumer<StringBuilder> consumer = (str) -> str.append("Jack!");
consumer.accept(sb);
//拼接完后进行输出
System.out.println(sb.toString()); // Hello Jack!
- andThen(Consumer<? super T> after) 拼接上一个consumer的规则
Consumer<StringBuilder> consumer1 = (str) -> str.append(" Bob!");
consumer.andThen(consumer1).accept(sb);
System.out.println(sb.toString()); // Hello Jack! Bob!
- BiConsumer<T,U> 提供两个自定义类型的参数,不返回执行结果,意思就是你可以输入两个值进去处理
StringBuilder sb = new StringBuilder();
BiConsumer<String, String> biConsumer = (a, b) -> {
sb.append(a);
sb.append(b);
};
biConsumer.accept("Hello ", "Jack!");
System.out.println(sb.toString()); // Hello Jack!