问个比较菜的问题,先看代码:<%@ page contentType="text/html; charset=gb2312"%>
<%
    String color = request.getParameter("color");
    if ("red".equals(color)) {
        request.getRequestDispatcher("red.jsp").forward(request, response);
    } else if ("green".equals(color)) {
        request.getRequestDispatcher("green.jsp").forward(request, response);
    }
%>
为什么不是 if(color.equals(("red")){ } ?
请高手指点!

解决方案 »

  1.   

    因为如果color是null,则代码会抛出异常。
    为了提高程序健壮性,则需要先判断color是不是null,这样程序可读性就降低了。这是一个非常小但非常有用的技巧。
      

  2.   

    原来小小的equals还有这样的天地呀 受教了!!!
      

  3.   

    呵呵,这是编程经验之谈呀,
    比如我们要判断username是否为空,尽量不要用username.equals(""),而是用"".equals(username),
    这样可以防止空指针异常。
      

  4.   

    "red"是常量,放在比较的前面,永远都不会错
    这个在C里面最提倡的