J2ee 开发编程规范
十三、 正确的进行对象比较
1.总是把不为空的对象放在比较的前面。
在j2ee项目中,这样的代码并不少见.name很容易是一个空值。那么在运行时就很容易抛出NullPointException.String name = request.getParameter("name");
if(name.equals(""))...{
…………
}
换成第二种形式
这样当name为空值时条件为false,与我们期望相符。而第一种形式则是一种隐患。说不准它什么时候就抛出了空指针异常。if("".equals(name))...{
…
}
这样的写法也可以,但是没有必要。第二种写法更简单也同样安全if(name == null || "".equals(name)) ...{
…
}
2.使用短路计算
在j2ee项目中,这样的代码也是频繁出象,没有做任何判断就调用对象的方法。谁又能保证调用者一定不会传一个空值对象进来呢?public void doXX(User user)...{
if(user.getAge() > 10)...{
…
}
}
当user为空时,第二个测试条件不被执行,这样才是安全的代码!在&&布尔表达式, 当前面的有一个条件为false时,那么结果为假,后面的条件不再进行测试。public void doXX(User user)...{
if((user != null) && (user.getAge() > 10))...{
…
}
}
同样在||布尔表达式中,当前面的有一个条件为true时,结果为真,后面的条件不再进行测试
当user 为null时,结果为真,那么后面的条件将不进行测试If((user == null) || (user.getAge() > 10))...{
………………..
}
十四、 小心遍历集合对象
在对集合进行遍历时,经常是下面的代码
这样的代码是安全的。我们时刻要防止可恶的nullPoint产生。List serviceDepartList = counter.getServiceDepartList();
for(int i = 0; i < serviceDepartList.size();i++) ...{
ServiceDepartmentDTO serviceDepart = (ServiceDepartmentDTO)serviceDepartList.get(i);
![]()
}
当serviceDepartList 为null时,那么它后面的遍历代码就抛出NullPointException.
所以在遍历集合时应该总是小心一些。for(int i = 0; serviceDepartList != null && i < serviceDepartList.size();i++) ...{
![]()
ServiceDepartmentDTO serviceDepart = (ServiceDepartmentDTO)serviceDepartList.get(i);
}
可能有些代码是这样的,
但我觉得上面的方法更简洁一些,特别是没有理由进行太多的if语句嵌套。嵌套增加了代码的复杂性,更难以阅读和理解。if(serviceDepartList != null)...{
for(int i = 0; i < serviceDepartList.size();i++) ...{
ServiceDepartmentDTO serviceDepart = (ServiceDepartmentDTO)serviceDepartList.get(i);
}
}
0
相关文章
