技术开发 频道

J2ee 开发编程规范



    十三、 正确的进行对象比较
    1.总是把不为空的对象放在比较的前面。
String name = request.getParameter("name"); if(name.equals("")){ ………… }
    在j2ee项目中,这样的代码并不少见.name很容易是一个空值。那么在运行时就很容易抛出NullPointException.
    换成第二种形式
if("".equals(name)){ }
    这样当name为空值时条件为false,与我们期望相符。而第一种形式则是一种隐患。说不准它什么时候就抛出了空指针异常。

if(name == null || "".equals(name)) { }
    这样的写法也可以,但是没有必要。第二种写法更简单也同样安全

2.使用短路计算
public void doXX(User user){ if(user.getAge() > 10){ } }
    在j2ee项目中,这样的代码也是频繁出象,没有做任何判断就调用对象的方法。谁又能保证调用者一定不会传一个空值对象进来呢?
public void doXX(User user){ if((user != null) && (user.getAge() > 10)){ } }
    当user为空时,第二个测试条件不被执行,这样才是安全的代码!在&&布尔表达式, 当前面的有一个条件为false时,那么结果为假,后面的条件不再进行测试。

    同样在||布尔表达式中,当前面的有一个条件为true时,结果为真,后面的条件不再进行测试
If((user == null) || (user.getAge() > 10)){ ……………….. }
    当user 为null时,结果为真,那么后面的条件将不进行测试

    十四、 小心遍历集合对象
    在对集合进行遍历时,经常是下面的代码
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); }
     这样的代码是安全的。我们时刻要防止可恶的nullPoint产生。
    可能有些代码是这样的,
if(serviceDepartList != null){ for(int i = 0; i < serviceDepartList.size();i++) { ServiceDepartmentDTO serviceDepart = (ServiceDepartmentDTO)serviceDepartList.get(i); } }
    但我觉得上面的方法更简洁一些,特别是没有理由进行太多的if语句嵌套。嵌套增加了代码的复杂性,更难以阅读和理解。
0
相关文章