参考
介绍
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