我一直在试图找到这个问题的答案,并且没有运气。现在已经很晚了,我很累,所以我想我会把它放在这里,并希望那里的人可以提供帮助。这是我在Eclipse中弹出错误的代码片段。
private void filterByTitle() {
String title = Validator.getLine(sc, "Enter the Title to retrieve: ");
System.out.println("\n" + Book.getHeadings());
for(Book book : bookList.filterListByTitle(title)) {
System.out.println(book);
}
}
有错误的部分是“:bookList.filterListByTitle(title))”。错误是“只能迭代数组或java.lang.Iterable的实例”。
我是Java的新手,所以请不要只重复错误。我知道有一个错误,但我不知道它意味着什么或如何解决它。如果可以的话请帮忙。
谢谢。
答案 0 :(得分:2)
bookList.filterListByTitle()需要返回一个实现java.lang.Iterable的对象,或者它需要是一个数组。在这种情况下,无论它返回什么,都应该为Iterable实现必要的方法,或者像AbstractList那样扩展其中一个抽象子类,或者是一个数组。
答案 1 :(得分:0)
这是因为bookList.filterListByTitle方法不返回数组或可迭代。
如果它是单个元素,则使用“if子句”而不是“for”来检查。