через непроверенное преобразование, потому что это не
ющее не компилируется:
@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);
}
Единственная разница будет в том, что я ввел дополнительную переменную. Обратите внимание, что я не бросил, так что нет семантических изменений.
Кто-нибудь может объяснить, зачем это нужно?