Java软件低级错误(二):常量对象化判断避免空指针异常
2011-08-11 19:02
267 查看
¨解读:
空指针异常是编码过程中最常见的异常,在使用一个对象的时候,如果对象可能为空,需要先判断对象是否为空,再使用这个对象。在进行常量和变量的相等判断时,建议将常量定义为Java对象封装类型(如将int类型的常量定义为Integer类型),这样在比较时可以将常量放在左边,调用equals方法进行比较,可以省去不必要的判空。
案例:
错误写法
Result result = getResult(resultCode);
// result可能为null,造成空指针异常
if (result.isValid())
{
print(result);
}
正确写法
// 即使resultCode为null,仍然可以正确执行,减少额外的判空语句
if (RESULT_CODE_OK.equals(resultCode))
{
return RESULT_OK;
}
return null;
空指针异常是编码过程中最常见的异常,在使用一个对象的时候,如果对象可能为空,需要先判断对象是否为空,再使用这个对象。在进行常量和变量的相等判断时,建议将常量定义为Java对象封装类型(如将int类型的常量定义为Integer类型),这样在比较时可以将常量放在左边,调用equals方法进行比较,可以省去不必要的判空。
案例:
错误写法
Result result = getResult(resultCode);
// result可能为null,造成空指针异常
if (result.isValid())
{
print(result);
}
正确写法
// 即使resultCode为null,仍然可以正确执行,减少额外的判空语句
if (RESULT_CODE_OK.equals(resultCode))
{
return RESULT_OK;
}
return null;
相关文章推荐
- Java软件低级错误(九 ):Java参数传递:传值还是传引用?
- Java软件低级错误(十 三):短路运算和非短路运算的区别
- Java软件低级错误(十 八):忽略InputStream.skip()返回值的处理
- Java软件低级错误(十 七):对于Map元素的遍历使用entrySet还是KeySet?
- Java软件低级错误(十 六):使用包装器对象带来的低效问题
- Java软件低级错误(十 九):静态变量的初始化问题
- Java软件低级错误:短路运算和非短路运算的区别
- Java软件低级错误(十 一):正确理解Java的浅clone和深clone
- Java软件低级错误: 定义equals方法的同时也要定义hashCode方法
- Java软件低级错误:字符串转数字时未进行异常处理
- Java软件低级错误(二十 ):正确理解String/StringBuffer/StringBuilder的性能区别
- Java软件低级错误(十二):Java的移位(>>和>>>)运算问题
- Java软件低级错误(五):魔鬼数字
- Java软件低级错误(十 五):大小写转换的正确处理
- Java软件低级错误(一):资源未及时释放
- Java软件低级错误(十 五):大小写转换的正确处理
- Java软件低级错误(十 四):定义equals方法的同时也要定义hashCode方法
- Java软件低级错误(七):Calendar的错误使用
- Reddit联合创始人教你避免软件开发中的低级错误
- Java软件低级错误(六):字符串转数字时未进行异常处理