用数组创建一个布尔方法

时间:2013-03-26 02:49:06

标签: java compiler-errors

我正在尝试创建一个静态布尔方法,该方法传递一个对象数组,如果数组包含至少一个空对象,则返回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.

3 个答案:

答案 0 :(得分:2)

您似乎在object.length循环中放置了objects.length而不是for,它应该是Object[] objects

中的大写字母O

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

记住:如果你输入一个;,那就意味着它就行了。在最后两个;

之后,您的缩进将会错过括号
 public static boolean anyEmptyObject(Object[] objects){
        for(int k = 0;k<objects.length; k++){
            if (objects[k].equals(null)){
                return true;
            }
        }
        return false;
    }

这将遍历你的数组,如果它甚至一旦它返回true就会命中null,如果它在没有命中空对象的情况下通过整个数组,那么它将遍历整个for循环然后继续返回false语句说这个数组中没有空对象。

答案 1 :(得分:1)

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

if (((YouClass)objects[k]).getEmpty()==true)

答案 2 :(得分:0)

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

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

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

  3. 另外,如果循环java.lang.Object类型的对象,不要指望它们有getEmpty()方法。