虽然这已经在包括SO
在内的各种论坛中详细讨论过,并且我已阅读了大部分专家的回复,但下面的问题是令人困惑的我。为什么int不能与null比较,但Integer可以与null比较
我有几个integer
变量,我的要求是在执行少量语句前检查null
。所以首先我宣布为int (I don't have knowledge on int and Integer)
。
int a,b,c;
if(a == null) {
//code here
}
但是编译器不允许我这样声明。
在谷歌搜索后,专家建议我使用Integer
,而不是int
当我变了样下面的代码
Integer a,b,c;
if(a == null) {
//code here
}
这是罚款与编译器为Integer
被定义为在Java Object
和int
是不。
现在我的代码已经成为一些声明int
和一些Integer
。
任何人都可以提出,如果声明Integer
可以得到同样的结果int
也可以更改我的所有声明到Integer
。
谢谢你的时间。
感谢@Edwin Buck的回复...我在与变量进行比较时没有任何问题,但是我的应用程序有一些功能迫使我与null比较......您能否使用'Integer'来指导我而不是'int'或者是否有任何问题。 – Siva
处理必须采用Object的项目时,使用Integer非常重要。例如,你可以有一个ArrayList但你不能有一个ArrayList ;因为int不能转换为Object,所以'add(T item)'方法无法实现。 (因为'int'不是'Object'的子类,而'Integer'是)。这些天自动装箱隐藏大部分这些区别,但偶尔了解差异仍然很重要。 –
如果我不处理对象..我还可以采取'整数'?用于存储值并将这些值用于运算操作?感谢您的持续帮助 – Siva