【发布时间】:2026-02-09 04:05:01
【问题描述】:
我找到了 assertj (3.5.2) 方法:usingComparatorForType 并爱上了它。
但我想将 2 个 XmlGregorianCalendar 日期与误差范围进行比较。而且这种神奇的方法不适用于这种情况......
原因如下:
- XmlGregorianCalendar 是一个抽象类
- 真实对象类型为:XmlGregorianCalendarImpl
- 这个类 (XmlGregorianCalendarImpl) 是私有的,所以我不能为这个类创建一个特定的比较器。
对于这种情况你有什么解决办法吗?是否有另一种方法可以很好地处理继承?
提前致谢。
【问题讨论】:
-
虽然该方法似乎没有检查不同的适用比较器,只是为了精确匹配,
com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl不是private,它在 Java 8 中是public。在其他版本中可能是package访问,在这种情况下,您仍然可以通过反射 (Class.forName(...)) 访问该类并在同一个包中创建一个比较器。
标签: java unit-testing testing junit assertj