我正在编写一个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());
}
}