我真的不知道这是否可能。
但是我想要检查一个int值是null
是不是要调用不同的方法。
有什么办法吗?
实际上,变量来自具有null
值的浏览器。
我无法将int
声明更改为Integer
。因为它有它自己的后果。
有什么建议吗?
答案 0 :(得分:32)
int
个变量不能为null
如果要将null
转换为int
,则转换器决定是设置0
,抛出异常还是设置其他值(如Integer.MIN_VALUE
})。尝试插入自己的转换器。
答案 1 :(得分:3)
我认为您可以将变量初始化为-1
之类的值,
因为如果int
类型变量未初始化,则无法使用。
如果要检查它是否不是您想要的值,可以检查它是否为-1
。
答案 2 :(得分:2)
我认为你在问这样的代码。
int count = (request.getParameter("counter") == null) ? 0 : Integer.parseInt(request.getParameter("counter"));
答案 3 :(得分:1)
如果你的int变量被声明为类级变量(实例变量),它将被默认为0.但是这并不表示从客户端发送的值是0还是null。也许你可以有一个setter方法,可以调用它来初始化/设置客户端发送的值。那么你可以定义你的指标值,可能是一些负值来表示空值..
答案 4 :(得分:1)
public class Demo {
private static int i;
private static Integer j;
private static int k = -1;
public static void main(String[] args) {
System.out.println(i+" "+j+" "+k);
}
}
OutPut:0 null -1
答案 5 :(得分:0)
可能浏览器返回一些整数值的字符串表示? 实际上int不能为null。 可能是你可以检查null,如果value不为null,则将String表示转换为int。
答案 6 :(得分:0)
int不能为null。如果您没有为int赋值,则默认值为0.如果要检查null,则在声明中将int设为Integer。然后Integer对象可以为null。因此,您可以检查它是否为空。即使在javax bean验证中,在将变量声明为Integer之前,您也无法获得@NotNull注释的错误。
答案 7 :(得分:-3)
整数不能为空,但有一种非常简单的方法可以做你想做的事情。使用if-then语句,在其中检查所有可能值的整数值。
示例:
int x;
//Some Code...
if (x<=0 || x>0){
//what you want the code to do if x has a value
} else {
//what you want the code to do if x has no value
}
声明: 我假设Java没有自动将数字值设置为0,如果它没有看到值。