Reputation: 3277
Is there a way to make the following code sample more concise?
final FluentIterable<AuthContext> withEmails = // ...
final Optional<AuthContext> verified = withEmails.firstMatch(VERIFIED_EMAIL);
if (verified.isPresent()) {
return verified.get();
}
return withEmails.first().orNull();
I was trying to do something like return verified.or(withEmails.first())
but there is no appropriate method in Optional
.
Alternatively return verified.or(withEmails.first().orNull())
will fail when the orNull()
method returns null.
Upvotes: 0
Views: 130
Reputation: 12766
Just do verified.or(withEmails.first()).orNull();
.
Depending on the return type of your method and your IDE of choice, the type inference may not suggest this as it returns another Optional
of type T rather an a T itself.
Upvotes: 4