Вы можете использовать длинную цепочку операций Optional
и Stream
для поэтапного преобразования ввода в вывод. Примерно так (не проверено):
String[] test = Optional.ofNullable(checkList)
.map(Collection::stream)
.orElseGet(Stream::empty)
.findFirst()
.map(m -> m.get("filename"))
.filter(f -> !f.trim().isEmpty())
.map(f -> f.split("_"))
.orElse(null);
Я бы настоятельно рекомендовал вам прекратить использование null
списков и карт. Гораздо лучше использовать пустых коллекций, чем null коллекций, так что вам не нужно иметь нулевые проверки повсюду. Кроме того, не допускайте пустых или пустых строк в ваших коллекциях; отфильтруйте их или замените на null
раньше, как только вы преобразуете пользовательский ввод в объекты в памяти. Вам не нужно вставлять вызовы на номера trim()
и isBlank()
и т. П. Повсюду.
Если бы вы сделали это, вы могли бы упростить до:
String[] test = checkList.stream()
.findFirst()
.map(m -> m.get("filename"))
.map(f -> f.split("_"))
.orElse(null);
Намного приятнее, нет?