This is the Maybe monad for Java.
Maybe is implementation inspired by Haskell's Data.Maybe and Control.Monad.Except monads. Unlike exception-throwing, Optional or Either-style approaches, it's purpose is to provide a useful monad around data that may exist or has an error at runtime.
Maybe.of
Maybe.ofNullable
Maybe.empty
Maybe.failure