В чем проблема? 🤕
Процесс проверки на нуль, по сути, является одной из самых утомительных и скучных вещей, которые нам приходится делать при написании кода Java.
Зачем мне использовать null? разве это не запах кода? 🤢
С момента введения необязательного в Java у нас есть хорошая альтернатива для выражения отсутствия значения вместо использования null.
Однако большую часть времени мы исправляем/добавляем в код других людей, в котором, скорее всего, повсюду есть null. Итак, чтобы решить эту проблему, нам придется написать много кода для проверки на наличие нулей.
Пример нулевой проверки 🧐
if (someVariable == null){
// do something
}
else{
// do something else
}
Решение С Использованием Дополнительного 🤩
Дополнительно предоставляет нам набор методов, которые позволяют обрабатывать такие случаи, как
- Если значение равно нулю, верните это значение
- Если значение равно нулю, возникает исключение
- Если значение равно нулю, выполните вычисление и возвращаемое значение
- Если значение равно нулю, запустите эту функцию
- И еще парочка…
Давайте напишем немного кода, чтобы посмотреть, как работают первые три 👀
1️⃣
Стиль нулевой проверки ☠️
private String getString() {
String result = getStringFromDB();
if (result == null)
return "It's empty";
else
return result;
}
Дополнительный стиль 😍
private String getStringWithTrick() {
return Optional.ofNullable(getStringFromDB()).orElse("It's empty");
}
2️⃣
Стиль нулевой проверки ☠️
private String getString() throws Exception{
String result = getStringFromDB();
if (result == null)
throw new Exception();
else
return result;
}
Дополнительный Стиль 😍
private String getStringWithTrick() throws Exception{
return Optional.ofNullable(getStringFromDB()).orElseThrow(Exception::new);
}
3️⃣
Стиль нулевой проверки ☠️
private String getString() {
String result = getStringFromDB();
if (result == null)
return doCalculation();
else
return result;
}
Дополнительный Стиль 😍
private String getStringWithTrick() {
return Optional.ofNullable(getStringFromDB()).orElseGet(this::doCalculation);
}
👉 Если вам нужно официальное введение в Необязательный Java, обратитесь к моему сообщению О том, как избежать исключений NullPointer в Java с помощью необязательного.
Заключение ✍️
- Нам удалось написать некоторый чистый/понятный код для выполнения проверки на нуль с использованием необязательной вместо написания обязательной проверки.
Проверьте код на GitHub 👨 💻
Оригинал: “https://dev.to/jarjanazy/use-optional-to-write-clean-java-code-21b7”