При использовании класса Java 8 Optional существует два способа, в которых значение может быть обернуто в необязательный.
String foobar = <value or null>;
Optional.of(foobar); // May throw NullPointerException
Optional.ofNullable(foobar); // Safe from NullPointerException
Я понимаю, что Optional.ofNullable - единственный безопасный способ использования Optional, но почему существует Optional.of вообще? Почему бы просто не использовать Optional.ofNullable и всегда быть в безопасности?