Java 中最常见的 Null 的过度使用问题

在java编程时,我们java程序猿经常会遭遇各式各样莫名错误。
 
对于Null过度使用问题,浅浅分析一下
避免过度使用 null 值是一个最佳实践。例如,更好的做法是让方法返回空的 array 或者 collection 而不是 null 值,因为这样可以防止程序抛出 NullPointerException。下面代码片段会从另一个方法获得一个集合:

List<String> accountIds = person.getAccountIds();
 for (String accountId : accountIds) 
{ processAccount(accountId); }

当一个 person 没有 account 的时候,getAccountIds() 将返回 null 值,程序就会抛出 NullPointerException 异常。因此需要加入空检查来解决这个问题。如果将返回的 null 值替换成一个空的 list,那么 NullPointerException 也不会出现。而且,因为我们不再需要对变量 accountId 做空检查,代码将变得更加简洁。

当你想避免 null 值的时候,不同场景可能采取不同做法。其中一个方法就是使用 Optional 类型,它既可以是一个空对象,也可以是一些值的封装。
 

Optional<String> optionalString = Optional.ofNullable(nullableString); if(optionalString.isPresent()) { System.out.println(optionalString.get()); }
事实上,Java8 提供了一个更简洁的方法:

Optional<String> optionalString = Optional.ofNullable(nullableString); optionalString.ifPresent(System.out::println);
Java 是从 Java8 版本开始支持 Optional 类型,但是它在函数式编程世界早已广为人知。在此之前,它已经在 Google Guava 中针对 Java 的早期版本被使用。
 
 

4 个评论

我也有
不错,不错
写得好
先留个脚印,后面学习要用到

要回复文章请先登录注册

Template error, template file not found