Java:从HTTP GET处理空值和未定义值

Java:从HTTP GET处理空值和未定义值,java,Java,对于下面的代码,我希望HTTP请求附带一组参数 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int variable1 = Integer.parseInt(request.getParameter("value1")); int variable2 = Integer.parseInt

对于下面的代码,我希望HTTP请求附带一组参数

protected void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {    
  int variable1 = Integer.parseInt(request.getParameter("value1"));
  int variable2 = Integer.parseInt(request.getParameter("value2"));
  int variable3 = Integer.parseInt(request.getParameter("value3"));

  if (variable1 == 1) {
    // do something
  }
}
但是,我得到了这个异常,因为并非所有参数都会通过

java.lang.NumberFormatException: null
我应该使用什么方法来处理未定义和空参数


备注:代码简化以显示所需的大小写。

创建自己的方法,在缺少参数时提供默认值:

private int getIntValue(String inputValue, int defaultValue) {
    return inputValue!=null?Integer.parseInt(inputValue):defaultValue;
}
然后你可以像这样使用它:

int variable1 = getIntValue(request.getParameter("value1"), -1);
...
此外,您可能需要检查参数是否确实是数字和整数。如果没有,那么您也希望收到NumberFormatException。因此,您还可以在方法中包含异常处理:

private int getIntValue(String inputValue, int defaultValue) {
    try {
        return inputValue!=null?Integer.parseInt(inputValue):defaultValue;
    }
    catch(Exception e) {
        return defaultValue;
    }
}

祝你好运。

当参数丢失时,你希望有什么行为?首先通过if request.getParametervalue1检查参数是否存在=null。您可以使用三元运算符,例如:int variable1=request.getParametervalue1=无效的Integer.parseIntrequest.getParametervalue1:-1@khelwood只是被忽略了,因为我将有if函数,每个函数只有一个会match@arnaud考虑把你的想法作为回答而不是评论。这可以给他们应得的荣誉,即成为公认的答案。为什么不使用Integer.parseInt而不是Integer.valueOf,因为你想要的是int而不是整数?@khelwood是的,你是对的,Integer.parseInt更好,因为你避免了拆箱。我编辑了我的答案。@Eng7我不确定我是否理解你要求使用问题中使用的名称约定的意思。你能解释一下吗?