--- tags: - зрелость/🌱 date: - - 2023-11-20 zero-link: - "[[../../../garden/ru/meta/zero/00 Java разработка]]" parents: linked: article: https://note.struchkov.dev/sravnitie-konstanty-slieva/ --- Представьте, что у вас есть enum, который отвечает за статус пользователя в системе: "онлайн", "офлайн" и "занят". ```java public enum UserStatus { ONLINE, OFFLINE, BUSY } ``` ```java public class User { ... @Column(name = "status") @Enumerated(EnumType.STRING) private UserStatus status; ... } ``` Скорее всего для выполнения бизнес-логики вам потребуется проверять статус пользователя. ```java if (user.getStatus().equals(UserStatus.ONLINE)) { // to do something } ``` Вроде бы все отлично, миссия выполнена. Но есть одно НО. Что если `getStatus()`вернет вам `null`? Правильно, вы получите `NullPointerException`. Чтобы этого избежать следует придерживаться правила "Сравнения константы слева". Оно очень простое. В нашем примере, мы точно уверены, что `UserStatus.ONLINE` существует, поэтому `.equals()` стоит вызывать от него. ```java if (UserStatus.ONLINE.equals(user.getStatus())) { // to do something } ``` В остальных подобных ситуациях делайте также, например со строками: ```java if ("Иванов".equals(user.getLastName())) { // to do something } ``` Это простое правило защитит вас от `NullPointerException`.