if里的逻辑判断顺序不一样,效果不一样?

当没选择checkbox的时候老师的代码成功进入循环体,我改了个顺序就报错了

-----------------------------------------------

String[] isUseCookies = request.getParameterValues("isUseCookie");

       if(isUseCookies!=null&&isUseCookies.length>0)

老师写的成功了

-----------------------------------------------

 String[] isUseCookies = request.getParameterValues("isUseCookie");

       if(isUseCookies.length>0&&isUseCookies!=null)

这样写就报空指针错误了,why???

-----------------------------------------------

org.apache.jasper.JasperException: An exception occurred processing JSP page /dologin.jsp at line 35

32:        request.setCharacterEncoding("utf-8");
33:        //棣栧厛鍒ゆ柇鐢ㄦ埛鏄惁閫夋嫨浜嗚浣忕櫥褰曠姸鎬�
34:        String[] isUseCookies = request.getParameterValues("isUseCookie");
35:        if(isUseCookies.length>0&&isUseCookies!=null)
36:        {
37:           //鎶婄敤鎴峰悕鍜屽瘑鐮佷繚瀛樺湪Cookie瀵硅薄閲岄潰
38:           String username = URLEncoder.encode(request.getParameter("username"),"utf-8");

LioHD
浏览 1623回答 1
1回答

呦呦米

isUseCookies 应该先判断是字符串否为空,不为空再取length判断字符串长短。因为如果字符串为空,就是null,取它的length,就类似于数组越界,就是对一个不存在的对象取值,会报空指针异常。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java