Optional<T> (Java 8+) — это контейнер, который может содержать значение или нет — явный способ представления "значение может отсутствовать" вместо возврата null. Он помогает избежать страшного NullPointerException (NPE), заставляя вызывающих рассмотреть пустой случай.
Проблема: null и NPE
User {
userMap.get(id);
}
findUser();
u.getName();
