我有一个条件声明如下
if (Sizeval != null) {
query.addFilterQuery("size:" + Sizeval);
}
在调试中,我可以看到Sizeval = null的值
我从下面的请求对象获取此值
Sizeval = (String) request.getParameter("Attr");
但是,即使Sizeval为null,它也会执行query.addFilterQuery语句。
关于纠正此问题的任何建议
最佳答案
重述您的问题。给定
HttpServletRequest requst = ...
String Sizeval = (String) request.getParameter("Attr");
if (Sizeval != null) {
query.addFilterQuery("size:" + Sizeval);
}
您会看到
if
的主体已执行(暗示Sizeval
不为null),但Sizeval
仍为null(在调试器或构造的过滤器中观察到)。说明:
Sizeval
不为null,但其文字值为"null"
。这将添加一个"size:null"
过滤器查询。同样,当在日志或调试器中查看变量时,它似乎是null
。验证做
if (Sizeval != null) {
if ("null".equals(Sizeval))
throw new IllegalArgumentException("got it");
query.addFilterQuery("size:" + Sizeval);
}