小编bar*_*k97的帖子

比较器<?超级T>作为函数参数-如何使用?

我是初学者。我必须实现一种根据给定比较器查找流的最小和最大元素的方法。如果流不包含任何元素,请调用:

minMaxConsumer.accept(null, null);
Run Code Online (Sandbox Code Playgroud)

我无法调用:

minMaxConsumer.accept(test.min(order), test.max(order));
Run Code Online (Sandbox Code Playgroud)

码:

public static <T> void findMinMax(
    Stream<? extends T> stream,
    Comparator<? super T> order,
    BiConsumer<? super T, ? super T> minMaxConsumer) {
        Stream<T> test = Stream.concat(Stream.empty(),stream);
        if(test.count()==0)
        {
            minMaxConsumer.accept(null, null);
        }
        else
        {
            minMaxConsumer.accept(test.min(order), test.max(order));
        }
    }
Run Code Online (Sandbox Code Playgroud)

错误:

Compilation error
Main.java:12: error: incompatible types: Optional<T> cannot be converted to CAP#1
            minMaxConsumer.accept(test.min(order), test.max(order));
Run Code Online (Sandbox Code Playgroud)

java comparator

3
推荐指数
1
解决办法
78
查看次数

标签 统计

comparator ×1

java ×1