我正在尝试创建一个静态布尔方法,该方法传递一个对象数组,如果数组包含至少一个空对象,则返回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.
答案 0 :(得分:2)
您似乎在object.length
循环中放置了objects.length
而不是for
,它应该是Object[] 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就会命中null,如果它在没有命中空对象的情况下通过整个数组,那么它将遍历整个for循环然后继续返回false语句说这个数组中没有空对象。
答案 1 :(得分:1)
数组中的对象类型是什么? 您需要先调用对象,然后才能调用成员方法,如下所示
if (((YouClass)objects[k]).getEmpty()==true)
答案 2 :(得分:0)
我看到两个错误(我建议您仔细阅读编译错误 - 它们通常很有帮助)
循环条件应该在objects
上,而不是object
不保证该方法到达return语句(编译器不知道您是否总是进入循环)。此外,逻辑是不正确的。如果将return false
部分移出循环,它在逻辑上和语义上都是正确的。
另外,如果循环java.lang.Object类型的对象,不要指望它们有getEmpty()方法。