【Java9年实战】空指针异常别再if判空了,这5种写法更优雅

8 阅读1分钟

1. 问题场景

前几天同事线上出bug,因为 user.getAddress().getCity() 中间某个对象为null,直接500了。

2. 常见错误写法

if(user != null && user.getAddress() != null) {...} // 太丑了

3. 我的5种优雅方案

  • 方案1:Optional.ofNullable (JDK8自带) Optional.ofNullable(user).map(User::getAddress).map(Address::getCity).orElse("未知");
  • 方案2:StringUtils.defaultString (Apache Commons)
  • 方案3:@Nullable注解 + IDE警告
  • 方案4:Lombok @NonNull
  • 方案5:Java 14 的 Objects.requireNonNullElse

4. 总结

推荐用Optional,代码清晰且不会漏判空。

5. 互动

你平时怎么处理空指针?评论区聊聊。