我在执行某项操作之前检查null,但是我遇到了一些问题。以下是代码:
if (c != null && c.size() != null) {
if (c.size() > 0) {
return (Application) c.toArray()[0];
}
我得到一个'运算符!=未定义参数类型int,null' at the point c.size()!= null。我理解size方法的返回类型是一个整数,这就是我收到此错误的原因吗?希望有人可以提供建议。谢谢。
答案 0 :(得分:0)
int
是primitive type,不是Object
,因此不是null
的引用。阅读此前answer
然后在您的代码中删除该条件。
并且首选您使用c.isEmpty()
而不是c.size()>0
您的代码如下所示:
if (c != null && !c.isEmpty()) {
return (Application) c.toArray()[0];
}
答案 1 :(得分:0)
首先,c.size()
的结果是整数。 int
是基元,不能是null
。只有对象可以是null
。
其次,c.size()
永远不会返回null
,所以检查
c.size() != null
是不必要的。
注意:每种基本类型都有包装类。例如
Integer i = 4;
i = null; // valid
该作业有效,因为i
是班级Integer
的一个实例。