Reports Optional call chains which could 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);

can be replaced with


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

This inspection only reports if the configured language level is 8 or higher.

New in 2020.2