尝试空检查时出错

时间:2014-03-24 03:31:08

标签: java collections int

我在执行某项操作之前检查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方法的返回类型是一个整数,这就是我收到此错误的原因吗?希望有人可以提供建议。谢谢。

2 个答案:

答案 0 :(得分:0)

intprimitive 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的一个实例。