через непроверенное преобразование, потому что это не

ющее не компилируется:

    @NotNull String defaultFormatter(@Nullable Object value) {
        if (value instanceof Collection) {
            return ((Collection) value).stream()
                        .map(MyClass::defaultFormatter)
                        .collect(Collectors.joining(eol));
        }
        return String.valueOf(value);
    }

В частности, при компиляции с javac ошибка будет:

Error:(809, 94) java: incompatible types: 
      java.lang.Object cannot be converted to 
      @org.jetbrains.annotations.NotNull java.lang.String

Но следующие компиляции просто отлично:

    @NotNull String defaultFormatter(@Nullable Object value) {
        if (value instanceof Collection) {
            Stream<String> stream = ((Collection) value).stream()
                         .map(MyClass::defaultFormatter);
            return stream.collect(Collectors.joining(eol));
        }
        return String.valueOf(value);
    }

Единственная разница будет в том, что я ввел дополнительную переменную. Обратите внимание, что я не бросил, так что нет семантических изменений.

Кто-нибудь может объяснить, зачем это нужно?

Ответы на вопрос(1)

Ваш ответ на вопрос