无法在Java中使用null安全Objects.equals比较长值

时间:2018-11-08 18:20:48

标签: java gmail-api

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

0 个答案:

没有答案