📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate.
По всем вопросам @evgenycarter
РКН clck.ru/3KoGeP
Post #4271
1.26K
🔍 Почему
Привет! Сегодня хочу поделиться одной из часто встречающихся ошибок при использовании
Многие разработчики, особенно начинающие, начинают использовать
📌 Ключевая идея
А не заменять все поля и параметры на
Примеры плохой практики:
Почему это плохо:
- Увеличивается сложность сериализации (особенно с Jackson, GSON).
- Не соответствует архитектурной задумке:
- Проблемы с JPA (Hibernate не дружит с Optional-полями).
- Понижается читаемость кода.
💡 Лучше использовать
То есть
Если кратко:
- ✅ Используй
- ❌ Не используй
А ты как используешь
📲 Мы в MAX
👉@BookJava
Optional — это не замена null везде и всегдаПривет! Сегодня хочу поделиться одной из часто встречающихся ошибок при использовании
Optional в Java.Многие разработчики, особенно начинающие, начинают использовать
Optional везде, где может быть null, думая, что это автоматически делает код "безопасным". Но так ли это?📌 Ключевая идея
Optional — сигнализировать о возможном отсутствии значения в результате вызова метода. А не заменять все поля и параметры на
Optional.Примеры плохой практики:
public class User {
private Optional<String> name; // ❌ Не нужно так делать
}
Почему это плохо:
- Увеличивается сложность сериализации (особенно с Jackson, GSON).
- Не соответствует архитектурной задумке:
Optional — это не контейнер для полей.- Проблемы с JPA (Hibernate не дружит с Optional-полями).
- Понижается читаемость кода.
💡 Лучше использовать
Optional вот так:
public Optional<User> findUserById(Long id) {
// Возвращаем Optional, потому что пользователь может не существовать
}
То есть
Optional — это про контракт на метод, а не про хранение данных.Если кратко:
- ✅ Используй
Optional в сигнатурах методов, когда результат может отсутствовать.- ❌ Не используй
Optional в полях и параметрах конструктора.А ты как используешь
Optional в проектах? Был ли опыт с его неправильным применением? Пиши в комментах👇📲 Мы в MAX
👉@BookJava
- 👍 6
- 👎 3







