-2

我正在尝试创建一个静态布尔方法,该方法传递一个对象数组,如果该数组包含至少一个空对象,则返回 true。

这是我的代码,但它不接受它,说有编译错误。

public static boolean anyEmptyObject(object[] objects){
for(int k = 0;k<object.length; k++){
        if (objects[k].getEmpty()==true){
          return true;}
      else {return false;}
}
}

(getEmpty 已经是一个声明的方法,如果对象为空则返回)

不知道我的错误在哪里,因为它看起来没问题?可能是我的括号?

错误只是

The system has detected compilation errors. This could be caused by:
Missing semicolon ; at the end of a statement.
Unclosed braces {}.
Unclosed parentheses ().
Unterminated string literals "".
Invalid method signature.
Missing return statement.
Redeclared variable or data member.
etc.
4

3 回答 3

2

看起来你把object.length而不是objects.length放在你的for循环中,它应该是一个大写的 OObject[] objects

此外,如果您返回,它将几乎结束循环。这不是你想要的。

记住:如果你放了一个;,那意味着它是行尾。您的缩进将在最后两个之后错过括号;

 public static boolean anyEmptyObject(Object[] objects){
        for(int k = 0;k<objects.length; k++){
            if (objects[k].equals(null)){
                return true;
            }
        }
        return false;
    }

这将遍历你的数组,如果它命中一个空值,即使它返回 true,如果它通过整个数组而没有命中一个空对象,那么它将运行整个 for 循环,然后继续执行 return false 语句说那里此数组中没有空对象。

于 2013-03-26T02:50:55.263 回答
1

数组中的对象类型是什么?您需要先转换对象,然后才能调用如下成员方法

if (((YouClass)objects[k]).getEmpty()==true)
于 2013-03-26T02:53:18.910 回答
0

我看到两个错误(我建议您仔细阅读编译错误 - 它们通常很有帮助)

  1. 循环条件应该是 on objects,而不是object

  2. 该方法不能保证到达返回语句(编译器不知道您是否总是进入循环)。此外,逻辑不正确。如果将return false部分移出循环,它将在逻辑和语义上都是正确的。

此外,如果您循环使用 java.lang.Object 类型的对象,不要期望它们具有 getEmpty() 方法。

于 2013-03-26T02:53:01.840 回答