2013-11-24 3 views
0

Я пытался найти ответ на этот вопрос пару дней и не повезло. Очень поздно, и я очень устал, поэтому подумал, что я поставил его здесь и надеюсь, что кто-то там поможет. Вот мой фрагмент кода, который вызывает ошибку в Eclipse.java.lang.Iterable error - Что это значит и как его исправить?

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 (название))". Ошибка: «Может только перебирать массив или экземпляр java.lang.Iterable».

Я новичок в Java, поэтому, пожалуйста, не просто повторяйте ошибку. Я знаю, что есть ошибка, но я не знаю, что это значит или как ее исправить. Пожалуйста, помоги, если можешь.

спасибо.

+4

Что такое BookList.filterListByTitle (название), возвращающееся? – Adarsh

+1

Сообщение об ошибке представляется очень описательным и точно определяет вашу точную проблему. –

ответ

2

bookList.filterListByTitle() должен возвращать объект, который реализует java.lang.Iterable или он должен быть массивом. В этом случае все, что он возвращает, должно реализовать необходимый метод для Iterable или расширить один из абстрактных подклассов, таких как AbstractList, OR - массив.

0

Это потому, что метод bookList.filterListByTitle не возвращает массив или итерабельность.

Если его один элемент затем использовать «if clause» вместо «for» для проверки.

Смежные вопросы