java.lang.Iterable错误 - 这是什么意思,我该如何解决?

时间:2013-11-24 04:49:39

标签: 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 book : bookList.filterListByTitle(title)) {
        System.out.println(book);
    }   
}

有错误的部分是“:bookList.filterListByTitle(title))”。错误是“只能迭代数组或java.lang.Iterable的实例”。

我是Java的新手,所以请不要只重复错误。我知道有一个错误,但我不知道它意味着什么或如何解决它。如果可以的话请帮忙。

谢谢。

2 个答案:

答案 0 :(得分:2)

bookList.filterListByTitle()需要返回一个实现java.lang.Iterable的对象,或者它需要是一个数组。在这种情况下,无论它返回什么,都应该为Iterable实现必要的方法,或者像AbstractList那样扩展其中一个抽象子类,或者是一个数组。

答案 1 :(得分:0)

这是因为bookList.filterListByTitle方法不返回数组或可迭代。

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