如何检查int(不是来自DataBase)是null

时间:2015-11-02 07:11:05

标签: java

例如int a,如何判断a是否为空? a不是来自DataBase。 当从Internet传输数据时,a的值可能会丢失。 我需要检查a是否为空。

- - - - - - - - 添加 这样的A类有一个私有的int a,而不是initial。 A具有SetA()函数。 可以从互联网转移,A!= null但A.a不是值吗?

3 个答案:

答案 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}}瞬间。