例如int a
,如何判断a
是否为空? a
不是来自DataBase。
当从Internet传输数据时,a
的值可能会丢失。
我需要检查a
是否为空。
- - - - - - - - 添加 这样的A类有一个私有的int a,而不是initial。 A具有SetA()函数。 可以从互联网转移,A!= null但A.a不是值吗?
答案 0 :(得分:1)
您可以使用ResultSet.getObject()
返回Java Object
,而不是使用原始int
:
Integer val = resultSet.getObject("val") != null ? resultSet.getInt("val") : null;
在这种情况下,null
值实际上对应于数据库表中的null
,值0
将对应于此确切值。
请注意,如果你尝试这样的话:
int val = resultSet.getInt("val");
if (val == 0) {
// but 0 can mean null OR the actual value 0...
}
然后您将无法区分null
值与实际值0
。
答案 1 :(得分:0)
基元的默认值不能为空。对于int,它应该是0。
对于从互联网传输的数据,该值最初可以是字符串格式。在将字符串解析为int之前,您可以检查字符串是否为空。
答案 2 :(得分:0)
对于原始类型,我们有固定的内存大小,即对于int,我们有4个字节,char我们有2个字节。并且null仅用于对象,因为内存大小不固定。
所以默认我们有,
int a=0;
而不是
int a=null;
最重要的是
int
不能为空,但Integer
可以。
试试这个
if(a == null){
//try something
}
这里是a
的{{1}}瞬间。