Мне нужно выполнить серию нулевых проверок (вложенных нулевых проверок), чтобы получить массив строк, как показано ниже.
String[] test;
if(CollectionUtils.isNotEmpty(checkList)){
if(MapUtils.isNotEmpty(checkList.get(0))){
if(StringUtils.isNotBlank(checkList.get(0).get("filename"))){
test = checkList.get(0).get("filename").split("_");
}
}
}
Есть ли лучший способ, возможно, используя Java8 Optional, для выполнения таких вложенных проверок? Я безуспешно пытался использовать Optional с flatmap/map.
!checkList.isEmpty()
вернет NPE. Я думал, что мне придется сделатьcheckList!= null && !checkList.isEmpty()
, поэтому я использовал другую библиотеку. Итак, для этой проверки я должен иметь вложенные операторыif()
? - person adbdkb   schedule 21.05.2019return Optional.ofNullable(checkList) .filter(l -> !l.isEmpty()) .map(l -> l.get(0)) .filter(m -> !m.isEmpty()) .map(e -> e.getOrDefault("filename", "").split("_")) .orElse(new String[10]);
, что нехорошо, если вы не знаете, почему эти жестко закодированные значения плавают. - person Naman   schedule 21.05.2019null
в первую очередь. Тогда вам не нужны сторонние методы, выполняющиеnull
проверки. - person Holger   schedule 21.05.2019