我正在编写一个 Swing 应用程序来管理我的 Gsuite 域中用户的 Gmail 设置,但是我检查更改的方法对于长值没有按预期运行。它接受一个带有新设置的参数(在本例中为假期设置),并将其与之前检索到的设置进行比较。
我正在检索我的设置并单击保存按钮而不进行任何更改,并且我的方法记录了更改。它看到 startTime 和 endTime (都是 long )属性发生了变化,而这些属性都没有。我知道是这些属性,因为当我将这些属性注释掉时,它会按预期工作。
private void updateVacation(VacationSettings settings) {
boolean isModified = false;
if(!vacationSettings.isEmpty()) {
if(!Objects.equals(vacationSettings.getEnableAutoReply(), settings.getEnableAutoReply()) ||
!Objects.equals(vacationSettings.getStartTime(), settings.getStartTime()) ||
!Objects.equals(vacationSettings.getEndTime(), settings.getEndTime()) ||
!Objects.equals(vacationSettings.getResponseSubject(), settings.getResponseSubject()) ||
!Objects.equals(vacationSettings.getResponseBodyPlainText(), settings.getResponseBodyPlainText()) ||
!Objects.equals(vacationSettings.getRestrictToContacts(), settings.getRestrictToContacts()) ||
!Objects.equals(vacationSettings.getRestrictToDomain(), settings.getRestrictToDomain())) {
isModified = true;
}
}
if(isModified) {
// TODO:Update vacation settings
Logger.getLogger(MainFrame.class.getName()).log(Level.INFO, settings.toString());
}
}