digital-garden/dev/java/Сравнение константы слева в Java.md
Struchkov Mark c4762ee1f0
All checks were successful
continuous-integration/drone/push Build is passing
Добавил всем заметкам метаданные
2024-09-09 21:07:47 +03:00

2.2 KiB
Raw Blame History

aliases tags date zero-link parents linked
maturity/🌱
type/opinion
2024-09-06
../../meta/zero/00 Java разработка

Представьте, что у вас есть enum, который отвечает за статус пользователя в системе: "онлайн", "офлайн" и "занят".

public enum UserStatus {

    ONLINE, OFFLINE, BUSY
    
}
public class User {

    ...

    @Column(name = "status")
    @Enumerated(EnumType.STRING)
    private UserStatus status;
    
    ...

}

Скорее всего для выполнения бизнес-логики вам потребуется проверять статус пользователя

if (user.getStatus().equals(UserStatus.ONLINE)) {
    // to do something
}

Вроде бы все отлично, миссия выполнена. Но есть одно НО. Что если getStatus() вернет вам null? Правильно, вы получите NullPointerException.

Чтобы этого избежать следует придерживаться правила "Сравнения константы слева". Оно очень простое. В нашем примере, мы точно уверены, что UserStatus.ONLINE существует, поэтому .equals() стоит вызывать от него.

if (UserStatus.ONLINE.equals(user.getStatus())) {
    // to do something
}

В остальных подобных ситуациях делайте также, например со строками:

if ("Иванов".equals(user.getLastName())) {
    // to do something
}

Это простое правило защитит вас от NullPointerException.


Мета информация

Область:: ../../meta/zero/00 Java разработка Родитель:: Источник:: Автор:: Создана:: 2024-09-06

Дополнительные материалы

Дочерние заметки

LIST 
FROM [[]]
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)