在Java代码中避免大量“if(obj!= null)”的最佳方法是什么?

时间:2010-07-29 14:31:07

标签: java nullpointerexception

  

可能重复:
  How to avoid “!= null” statements in Java?

分享你的想法..

4 个答案:

答案 0 :(得分:19)

第一个答案是总是为返回此类对象的方法返回空列表,集合,数组而不是null。来自Joshua Bloch的Effective Java第二版第43项

答案 1 :(得分:5)

看看Null Object Pattern。基本的想法是你有一个特殊版本的类,你可以使用而不是null。

此特殊版本的字段设置为在代码中有意义的默认值。这意味着你永远不会有空引用,你只需要一个不会做太多的类或者在使用时返回默认值。

答案 2 :(得分:4)

在我看来,无效检查是邪恶的。他们表明,没有合同确定obj是否null。最好的替代方法是以保证obj永远不会null的方式编写代码。例如:如果getter必须获得非null obj,但不能,则必须自行抛出异常。

答案 3 :(得分:1)

Yoda Conditions

if (CONST_VALUE.equals(obj)) { ... }