Java 8 可选检测空集合

问题描述 投票:0回答:2

使用Java Optional。

List<String> myList = ....

Optional.ofNullable(myList)
   .ifPresentOrElse(.. do something.., ()-> log.error("missing list"));

我想在列表为空或无的时候在日志中捕获。上面的方法对于 null. 如何扩展它来捕获空集合?

java optional
2个回答
2
投票

我认为要用 if()else{} 是比较容易读懂的。你可以这样做。

Optional.ofNullable(myList == null || myList.isEmpty() ? null: myList)
       .ifPresentOrElse(.. do something.., ()-> log.error("missing list"));

2
投票

如果你真的想把事情复杂化,用 Optional -

Optional.ofNullable(myList).filter(l -> !l.isEmpty())
   .ifPresentOrElse(.. do something.., ()-> log.error("missing list"));

更好的是使用 if-else -

if(myList !=null && !myList.isEmpty()) {
      // do something
} else {
    log.error("missing list");
}

进一步改进--确保 List 没有分配到一个 null 价值。

© www.soinside.com 2019 - 2024. All rights reserved.