Получить строковое значение даты, используя метод dateObj.toJSON () Ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toJSON Нарезать дату из возвращаемого значения и затем увеличивать на количество дней, которое вы хотите.
var currentdate = new Date();
currentdate.setDate(currentdate.getDate() + 1);
var tomorrow = currentdate.toJSON().slice(0,10);
Согласно эта статья , equals
и hashCode
должна быть независимой от состояния. Если вы переопределили только первое, это плохо и может вызвать странные ошибки. У них должен быть контракт .
Самый простой способ - использовать ломбок - аннотируйте свой класс с помощью @EqualsAndHashCode(onlyExplicitlyIncluded = true, callSuper = false)
и полей, используемых по сравнению с @EqualsAndHashCode.Include
.
Когда я изучил это некоторое время назад, я пришел к выводу, что нет единого правильного ответа.
Я закончил проверкой только свойства @Id
в equals()
и hashCode()
, так как это, казалось, работало лучше всего. (Мы не используем @NaturalId
s; вместо этого он мог бы работать с этим, но может быть безопаснее придерживаться @Id
.)
Я думаю, что единственная потенциальная проблема, с которой я столкнулся, была если новый экземпляр добавляется в коллекцию перед сохранением. На практике этого никогда не происходит в нашем проекте, и поэтому он работает хорошо. (Если это произойдет в вашем проекте, вы все равно можете найти это лучшим компромиссом, чтобы избежать проблем, когда сохраняются объекты появляются в коллекциях, что встречается гораздо чаще.)
Как и другие ответы указали, что если вы переопределяете equals()
, вы должны также переопределять hashCode()
, чтобы гарантировать, что равные объекты всегда имеют одинаковый хэш-код. (Первый пример вопроса соответствует этому, хотя, возможно, это немного сбивает с толку, когда два метода не проверяют все одинаковые поля.)
Кстати, в Котлине эти два метода становятся незначительно управляемыми: [ 1115]
override fun equals(other: Any?) = other === this
|| (other is MyEntity && entityId == other.entityId)
override fun hashCode() = entityId
(Еще один пример того, почему я люблю Котлина!)