2015-12-14 41 views
-5

我想返回Book类的对象,该类的字段bookTitle与参数selection匹配。如何使用参数匹配字段从ArrayList返回对象?

BookListBook类中的ArrayList,其中包含所有书对象。我的IDE告诉我null。如何制定回报声明?

public Book getBook(String selection) { 
    for (Book book : Book.BookList) { 
     if (selection.equals(Book.getBookTitle())) { 
      return book; 
     } 
    } 
} 
+2

你的IDE也告诉你,你错过了一个return语句。更重要的是,'getBookTitle'是一个静态方法,还是一个在每个'book'实例上调用的方法? – Makoto

回答

0

您在方法中使用类名而不是变量名。如果你切换回路:

Book found = null; 
    for (Book book : Book.BookList) 
     { 
        if (selection.equals(book.getBookTitle())) 
        { 
         found = book; 
        } 
     } 
return found; 

试试这个,它应该解决你的问题。

+0

我们对这个问题还不是很了解,所以确定这是问题所在。此外,如果列表不包含书籍列表,则不会解决没有返回语句的问题。 – Makoto

+0

我把循环返回,如果他得到正确的arrayList,那么这是否会解决问题,因为他实际上并没有在他原来的循环的arrayList中查看单个书名? – Chris

+0

这样可以解决问题,因为如果没有等于“选择”的书名,我们仍然会返回null。返回'null'并不理想,但我们仍然会返回一些满足编译器的东西。 – Makoto

相关问题