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.ofMaybe.ofNullableMaybe.emptyMaybe.failure