Гуру, разжуйте, пожалуйста, как работает конструкция .ofNullable().orElse()? В лекции пояснений нет, а по документации не совсем понятно у объекта какого типа должен вызываться метод .orElse?
public class Solution {

    public static void main(String[] args) {
        List<String> strings = new ArrayList<>();
        Collections.addAll(strings, "first", "second", null, "fourth", "fifth");

        printList(strings);
    }

    public static void printList(List<String> list) {
        String text = "Этот элемент равен null";
        list
                .forEach(x-> System.out.println(Optional.ofNullable(x).orElse(text)));
    }
}