Я расследую проблему и наткнулся на некоторый подозрительный код, включающий сравнение экземпляров Date с использованием операторов сравнения.например,
def stamp = ... //Date
def offset = ... //Integer
def d = new Date(stamp.time + offset)
if (d < new Date()) {
...
}
Этот ресурс указывает на то, что вышеприведенное эквивалентно следующему
def stamp = ... //Date
def offset = ... //Integer
def d = new Date(stamp.time + offset)
if (d.compareTo(new Date()) < 0) {
...
}
Однако документация GDK только для дат примеры сравнения дат с использованием compareTo
, before
и after
, и я, кажется, вспоминаю, как специально избегать использования операторов сравнения на датах из-за опыта с неожиданными результатами.Действительно ли два приведенных выше примера кода действительно эквивалентны (то есть можно ли безопасно использовать операторы сравнения для дат в Groovy или использовать только compareTo
, before
и after
)?
Спасибо!