【问题标题】:Error in thenComparing in a Comparator java 8比较器java 8中的thenComparing错误
【发布时间】:2021-11-01 19:47:09
【问题描述】:
solicitudes = solicitudes.stream()
    .sorted(Comparator.comparing(t -> {
        Date fecha = null;
        try {
            fecha = ((CognodataEstadoSolicitudesDTO) t).getFechaSolicitudToDate();
        } catch (ParseException e) {
            LOG.error(e.getMessage());
        }
        return fecha;
    })
    .thenComparing(Comparator.naturalOrder()))
    .collect(Collectors.toList()); //FAIL HERE 

当我在做thenComparing 时,Java 抛出的错误是这样的:

类型中的thenComparing(Comparator)方法 比较器不适用于参数 (比较器>>)

你知道发生了什么吗?

【问题讨论】:

    标签: java comparator


    【解决方案1】:

    可能是因为类型推断无法解析。

    明确说明方法调用的泛型类型通常会为我解决这个问题:

    Comparator.<Date>comparing(...)
        .thenComparing(...)
    

    【讨论】:

    • 太糟糕了,在每次调用 Comparator 链式方法的 IDE 中尝试“额外变量”,看看它解析为什么类型。
    猜你喜欢
    • 2017-10-28
    • 2015-11-02
    • 2019-03-13
    • 2016-01-04
    • 2016-11-05
    • 1970-01-01
    相关资源
    最近更新 更多