NullPointerException大概是最常见的RuntimeException。大量的开发工作花在尝试发现对象是否被赋值上,仅仅是为了检查它是否是null的。要解决这个问题,可以用一个if-null块来保护你的代码。例如: if(obj != null) {str = obj.toString( );} 但是,当被保护的块象下面这样的时候,是有问题的:if(obj.equals(newobj)){....} 加上保护用的if-null块会变成这样:if(obj != null) {if(obj.equals(newobj)) {....}} 当嵌套if块来处理null保护时显得很凌乱,这时可以试一下使用短路运算符。例如布尔“与”运算符,“&&”:if((obj != null) && obj.equals(newobj) ) {...} “短路”意味着运算符...