我想创建一个通用test()
函数来演示Stream
操作allMatch
、anyMatch
和noneMatch
。它可能看起来像这样(无法编译):
import java.util.stream.*;
import java.util.function.*;
public class Tester {
void test(Function<Predicate<Integer>, Boolean> matcher, int val) {
System.out.println(
Stream.of(1,2,3,4,5).matcher(n -> n < val));
}
public static void main(String[] args) {
test(Stream::allMatch, 10);
test(Stream::allMatch, 4);
test(Stream::anyMatch, 2);
test(Stream::anyMatch, 0);
test(Stream::noneMatch, 0);
test(Stream::noneMatch, 5);
}
}
(我认为)我的挑战是定义matcher
哪个可能需要是通用的,而不是我在这里做的方式。我也不确定是否可以拨打我在此处显示的电话main()
。
我什至不确定这是否可以做到,所以我会很感激任何见解。