Java Optional 对Null的友好

2019-02-15  本文已影响0人  LoWang

Java Optional 对Null的友好

以前的做法

开发过程中,经常会有null的判断,会写很多if判断,导致代码繁多切不简洁,在kotlin里面,null的友好处理是在后面加个?,在java中,以前的做法是如下:

List<String> des = message.getDestinations();
String touser;
if (des != null && des.size() > 0) {
  touser = des.get(0);
  if (touser == null || touser.length() == 0) {
    touser = "default-user";
  }
} else {
  touser = "default-user";
}

如果用上工具类,代码会有所精简

List<String> des = message.getDestinations();
String touser;
if (!CollectionUtils.isEmpty(des)) {
  touser = des.get(0);
  if (StringUtils.isBlank(touser)) {
    touser = "default-user";
  }
} else {
  touser = "default-user";
}

多余的代码都是在if null的判断上,那么以上的代码的逻辑就是取list中的第一个元素,没有则返回default-user。那么是否有更简洁的写法呢?请看下面

现在的做法

String touser =
        Optional.ofNullable(message.getDestinations())
            .filter(x -> x.size() > 0)
            .map(y -> y.get(0))
            .orElse("default-user");

简析上面代码

从上面的可以看出,Optional.ofNullable在某些场景中很大程度上精简了代码,增强了可读性。

上一篇 下一篇

猜你喜欢

热点阅读