异常ParseException与Comparator <l> .compare(L,L)

时间:2019-03-12 07:05:49

标签: java

  

Exception ParseException与Comparator.compare(L,L)中的throws子句不兼容。

我在 java 6 上运行,因此我必须实现Comparator并重写compare方法,然后创建该类的对象。相比之下,我必须使用格式化程序来解析日期,这可能会导致ParseException,而且我无法从覆盖的比较中将其扔给调用方。

1 个答案:

答案 0 :(得分:2)

compare签名不允许选中的Exception

int compare(T o1, T o2);

您会说“ 然后将其包装在RuntimeException 中”。等等!

JavaDoc

  

使用具有以下功能的比较器时应格外小心:   施加与等于不一致的排序来排序已排序的集合   (或排序后的地图)。

这意味着,您是否在Exception方法中抛出了相同的equals? 如果是,则可以在compare方法中这样做,否则,请捕获它并返回适当的integer值。

就我个人而言,我不会在创建对象时运行数据一致性检查,因此不会(手动)从排序/相等方法中抛出Exception