Reports Optional call chains that can be replaced with a sequence of if statements.

Example:


  return Optional.ofNullable(name)
    .map(this::extractInitials)
    .map(initials -> initials.toUpperCase(Locale.ENGLISH))
    .orElseGet(this::getDefault);

After the quick-fix is applied:


  if (name != null) {
    String initials = extractInitials(name);
    if (initials != null) return initials.toUpperCase(Locale.ENGLISH);
  }
  return getDefault();

This inspection can help to downgrade for backward compatibility with earlier Java versions.

New in 2020.2