Exception ParseException与Comparator.compare(L,L)中的throws子句不兼容。
我在 java 6 上运行,因此我必须实现Comparator并重写compare方法,然后创建该类的对象。相比之下,我必须使用格式化程序来解析日期,这可能会导致ParseException
,而且我无法从覆盖的比较中将其扔给调用方。
答案 0 :(得分:2)
compare
签名不允许选中的Exception
。
int compare(T o1, T o2);
您会说“ 然后将其包装在RuntimeException
中”。等等!
JavaDoc 说
使用具有以下功能的比较器时应格外小心: 施加与等于不一致的排序来排序已排序的集合 (或排序后的地图)。
这意味着,您是否在Exception
方法中抛出了相同的equals
?
如果是,则可以在compare
方法中这样做,否则,请捕获它并返回适当的integer
值。
就我个人而言,我不会在创建对象时运行数据一致性检查,因此不会(手动)从排序/相等方法中抛出Exception
。