排序的日期比较不起作用。请指教。
代码:
公共类ListMapComparator实现Comparator {
@Override
public int compare(Object obj1, Object obj2) {
try {
Map<String, String> test1 = (Map<String, String>) obj1;
Map<String, String> test2 = (Map<String, String>) obj2;
String string1 = test1.get("formattedDate");
String string2 = test2.get("formattedDate");
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
Date d1 = sdf.parse(string1);
Date d2 = sdf.parse(string2);
return d1.compareTo(d2);
} catch (ParseException ex) {
//Logger.getLogger(ListMapComparator.class.getName()).log(Level.SEVERE, null, ex);
}
return 0;
}
}
错误: 错误:找不到符号 return d1.compareTo(d2); 符号:方法compareTo(日期) location:Date类型的变量d1 注意:某些输入文件使用或覆盖已弃用的API。 注意:使用-Xlint重新编译:弃用以获取详细信息。 注意:某些输入文件使用未经检查或不安全的操作。 注意:使用-Xlint重新编译:取消选中以获取详细信息。
答案 0 :(得分:2)
Codename One中的Date
类不具有可比性,因此调用compareTo
将失败。但是,您可以通过将最后一行更改为:
return (int)(d1.getTime() - d2.getTime());
或者以相反的顺序排序。