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在进行比较时抛出的错误是:
然后比较的方法(比较器
你知道发生了什么事吗?
这可能是因为类型推断无法解决它。
显式声明方法调用的泛型类型通常会为我修复它:
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的描述: 返回由该流的元素组成的流,根据提供的
我有这个对象: 我想按收到日期排序; 但这似乎是不可能的,因为我得到了一个编译错误: