java.lang.Iterable错误-这意味着什么?如何修复它?

java.lang.Iterable错误-这意味着什么?如何修复它?,java,arrays,iterable,Java,Arrays,Iterable,这几天来,我一直在努力寻找答案,但运气不佳。现在已经很晚了,我很累,所以我想我会把它挂在这里,希望有人能帮助我。下面是我在Eclipse中弹出错误的代码片段 private void filterByTitle() { String title = Validator.getLine(sc, "Enter the Title to retrieve: "); System.out.println("\n" + Book.getHeadings()); for(Book b

这几天来,我一直在努力寻找答案,但运气不佳。现在已经很晚了,我很累,所以我想我会把它挂在这里,希望有人能帮助我。下面是我在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新手,所以请不要重复这个错误。我知道有错误,但我不知道这意味着什么,也不知道如何修复它。如果可以的话,请帮忙


谢谢。

bookList.filterListByTitle()需要返回一个实现java.lang.Iterable的对象,或者它需要是一个数组。在这种情况下,它返回的任何内容都应该实现Iterable的必要方法,或者扩展抽象子类(如AbstractList)中的一个,或者是一个数组。

这是因为bookList.filterListByTitle方法不返回数组或Iterable


如果是单个元素,则使用“if子句”而不是“for”进行检查。

什么是bookList.filterListByTitle(title)返回?错误消息似乎非常具有描述性,并指出了您的确切问题。