Supplier<T>
供给接口 对应的Lambda表达式需要“对外提供”一个符合泛型类型的对象数据。
T get()
public static void main(String[] args) {
int[] arr = {3, 8, 5, 2, 0};
method(() -> {
Arrays.sort(arr);
return arr[arr.length - 1];
});
}
private static void method(Supplier<Integer> s) {
Integer max = s.get();
System.out.println(max);
}
Consumer<T>
消费接口 消费一个数据,其数据类型由泛型参数决定。
void accept(T t)
public static void main(String[] args) {
//转大写
//标准格式
method("Hello World",(String s) -> {
System.out.println(s.toUpperCase());
});
//转小写
//省略格式
method("Hello World",s -> System.out.println(s.toLowerCase()));
}
private static void method(String s , Consumer<String> c) {
c.accept(s);
}