当前位置: 首页 > 知识库问答 >
问题:

比较器java 8中的比较出错

张茂勋
2023-03-14
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 

Java在进行比较时抛出的错误是:

然后比较的方法(比较器

你知道发生了什么事吗?

共有1个答案

华萧迟
2023-03-14

这可能是因为类型推断无法解决它。

显式声明方法调用的泛型类型通常会为我修复它:

Comparator.<Date>comparing(...)
    .thenComparing(...)
 类似资料:
  • 假设我有一个双人课 我希望对它进行排序,首先是第一个值,然后是第二个值。现在,如果我这样做 一切都很好,列表按对的第一个值排序,但如果我这样做 它因错误而失败 好吧,所以它可能无法推断参数,所以如果我这样做 它因错误而失败 为什么它适用于comparing()而不适用于comparing()。然后比较()?

  • 我想用Lambda对列表排序: 但我得到了这个编译错误:

  • 我有一个关于compareTo函数如何帮助比较器排序的问题,即o1。比较(o2)与o2。比较(o1) 如果两个字符串相等,则此方法返回0,否则返回正值或负值。如果第一个字符串在词典上大于第二个字符串,则结果为正,否则结果为负。 上面的陈述很简单,但是为什么o1.compare(o2)会给我一个升序,而o2.compare(o1)给了我一个降序? 如果我有整数值“5,10,3”,我得到3,5,10和

  • 我有一个ArrayList,需要按降序排序。我用java来实现它。util。流动流动排序(比较器)方法。以下是根据Java API的描述: 返回由该流的元素组成的流,根据提供的

  • 我有这个对象: 我想按收到日期排序; 但这似乎是不可能的,因为我得到了一个编译错误: