The Null Object pattern is The Correct Answer (for Java like languages).
Java's Optional is a bad idea implemented badly made even more bad by bad usage.
Java's Optional is a bad idea implemented badly made even more bad by bad usage.
Option(null).map(str => str + "!").foreach(str => println(str)) is a noop.
"...an object which implements the expected interface, but whose method body is empty. "