2.3 KiB
aliases | tags | date | zero-link | parents | linked | |||
---|---|---|---|---|---|---|---|---|
|
2024-09-06 |
|
Представьте, что у вас есть 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