Java:从HTTP GET处理空值和未定义值
对于下面的代码,我希望HTTP请求附带一组参数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
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我不确定我是否理解你要求使用问题中使用的名称约定的意思。你能解释一下吗?