Another reason to be carefully when pass an Optional
as parameter is that a method should do one thing... If you pass an Optional
param you could favor do more than one thing, it could be similar to pass a boolean param.
public void method(Optional<MyClass> param) { if(param.isPresent()) { //do something } else { //do some other } }