I hear people saying Optional is usually used as return values. Can I use it as an argument, like this? void consume(Optional<String> value) This way, I don't need to add spec like "@param value can be null if there is no such value". Thanks Max