我制作的代码的一部分应该是这样的。
String name = request.getParameter("Name");
if(name!=null && !name.isEmpty())
{
DO SOMETHING
}
但最终使用' ||'操作员而不是'&&'运营商。我在
处获得警告命名 .isEmpty()
说
空指针访问:变量名在此位置只能为空。
有人可以解释一下为什么会这样吗?
顺便说一下,' 请求'是我从前一个类获得的HttpServletRequest对象。
答案 0 :(得分:4)
name != null || !name.isEmpty()
NullPointerException
。答案 1 :(得分:2)
当你这样做时:
if(name!=null || !name.isEmpty())
然后,如果到达第二部分,由于Short-circuit evaluation,name
为null
。
请注意false && anything
为false
而true || anything
为true
。
答案 2 :(得分:1)
你可以这样做:
String name = request.getParameter("Name") != null ? request.getParameter("Name") : "";
确保name
不是null
。然后
if (name.isEmpty()) { ... }
答案 3 :(得分:-1)
if(name!=null ){
if(!name.isEmpty()){
//body
}
}