如果使用某个对象或对象里属性前先判断是否为null,那就需要思考一下你的代码是否已经烂掉了。
null是什么意思,你能说清楚它的意图吗?方法返回了null,是出错了还是入参不对还是没查到?null作为方法入参,null代表什么,是没给值还是没有值。同时,如果你返回了null或传递了null,无形中会对后续步骤增加了一步对null的校验。
null只能作为语法级使用,最好不要出现在业务代码中,因为你根本说不清它的意图。如果一个方法返回了null,说明这个方法就是一段烂代码。你调别的方法传入了null,你的代码就是一段烂代码。
对null的使用要做到两点:
1.不返回null;
2.不传递null。
对于不返回null,可通过抛异常、返回特例数据(空集合、空数组、空字符串等)来代替。当然也可以通过使用Guava的Optional来代替。
不传递null,减少这一步,就会减少后续校验的累赘。