Calling method after Optional.filter() without passing in object

notAChance :

I can understand the below:

user
  .filter(u -> "Sam".equals(u.getName()))
  .ifPresent(this::doSomethingWithUser);

if user.getName is equal to "Sam" then pass user to local method doSomethingWithUser().

However, what if I simply wanted to call a local method, without passing user but keeping the check that user.getName is equal to "Sam"?

Does this use case make using Optional redundant?

drekbour :

Just ignore the mandatory function parameter. This means you cannot use shorthand :: syntax and goes like this:

user
  .filter(u -> "Sam".equals(u.getName()))
  .ifPresent(u -> doSomethingWithoutUser());

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=329794&siteId=1