Я нашел метод assertj (3.5.2): usingComparatorForType и влюбился в него.
Но я хотел сравнить 2 даты XmlGregorianCalendar с погрешностью. И этот волшебный метод не работает для этого случая...
Вот почему:
- XmlGregorianCalendar — это абстрактный класс.
- Реальный тип объекта: XmlGregorianCalendarImpl
- Этот класс (XmlGregorianCalendarImpl) является закрытым, поэтому я не могу создать специальный компаратор для этого класса.
У вас есть решение для этого случая? Есть ли другой метод, который отлично работает с наследованием?
Заранее спасибо.
com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl
неprivate
, этоpublic
в Java 8. В других версиях это может быть доступpackage
, и в этом случае вы все еще можете получить доступ к классу через отражение (Class.forName(...)
) и создайте компаратор в том же пакете. - person Florian Schaetz   schedule 14.09.2016