Java中各种“空”的判定方法


在Java中,一个类为空的判断是常用的功能。但是各种类的空判断却不一样

当一个方法返回的是一个Object时,应使用==null来判断是否为空,例如在Servlet中的session判断用户是否登录可以用如下的代码

if (session.getAttribute("LoginUser")==null){

.............

}

但是如果是一个String类型的变量,或者某一个方法返回的是String类型的结果。其判断为空的方式又不一样了。需要使用String类中的equals方法。例如在JSP中获取URL中的参数,为保险起见,可以先判断这个参数是否为空,不空再获取。如果直接获取,一旦这个参数没有,www.bkjia.com 会造成空指向异常。代码如下

if (request.getParameter("id").toString().equals(null)){

out.println("未提供参数");

}else{

String id=request.getParameter("id").toString();

out.println(id);

}

假设页面地址为 http://localhost/test.jsp

如果不加判断 直接使用

String id=request.getParameter("id").toString();

out.println(id);

会造成空指向异常,而使用了判断后,这种情况下不报错,在页面上显示“未提供参数”。如果地址栏输入的是http://localhost/test.jsp?id=123

则页面输出“123”

另外在字符串的“空”验证时还要注意一种情况,那就是“”空。

如果假想Java中有指针的概念的话,String a为null空,则表示变量没有指针去映射它;而String a为“”空,则表示该字符串有指针映射,但是映射到的内容为空。

相关内容