#java
#java
Вопрос:
Исключение ParseException несовместимо с предложением throws в Comparator.compare(L, L).
Я работаю на Java 6, поэтому мне нужно реализовать Comparator и переопределить метод compare, а затем создать объект этого класса. В compare я должен проанализировать дату с помощью formatter, что может вызвать ParseException
, и я не могу передать ее вызывающему из переопределенного compare.
Комментарии:
1. можете ли вы опубликовать свой код здесь
Ответ №1:
compare
Подпись не допускает проверки Exception
.
int compare(T o1, T o2);
Вы бы сказали «тогда я просто заключу это в RuntimeException
«. Подождите!
JavaDoc говорит
Следует соблюдать осторожность при использовании компаратора, способного устанавливать порядок, несовместимый с equals, для упорядочивания отсортированного набора (или отсортированной карты).
Это означает, что вы создаете то же самое Exception
в equals
методе? Если да, то это нормально сделать в compare
методе, в противном случае перехватите его и верните соответствующее integer
значение.
Лично я не выбрасываю (вручную) Exception
s из методов упорядочения / равенства, поскольку я запускаю проверки согласованности данных при создании объектов.
Комментарии:
1. Это потрясающе. очень пояснительно. спасибо за ответ 🙂
2. @benignfoppery рассмотрите возможность принятия ответа, если считаете, что оно того стоит. Спасибо!
3. Выполнено. Я был новичком в том, чтобы задавать вопросы в stack, поэтому не знал, как это принять.
4. @benignfoppery Спасибо! Помните, что вас не заставляют соглашаться, только когда ответ хорош и достаточен для решения ваших сомнений / проблемы. Это также благодарность тем, кто отвечает 😉