1

这是我的方法:

public Book getBook(String title, String author){
    for (int i = 0; i < listOfBooks.size(); i++){
        Book book = listOfBooks.get(i);
        if (book.getTitle() == title && book.getAuthor() == author){
            return book;
        }
    }
}

如果在 listOfBooks 中找不到该书,我应该返回什么?

4

7 回答 7

5

返回null(并记录行为)是一种相当明显的选择。

PSequals()用于比较字符串:

if (book.getTitle().equals(title) && book.getAuthor().equals(author)) {

PPS 以下编写循环的方法可以说更惯用,在某些情况下可能会更快:

for (Book book : listOfBooks) {
于 2013-09-23T13:32:09.193 回答
4

返回null或抛出BookNotFoundException您编写的继承自 Java.lang.Exception 的异常

于 2013-09-23T13:33:19.903 回答
2

return null;如果未找到 Book 或抛出Exception类似“NotFoundException”的自定义,您可以简单地进行。

顺便说一句,您不能==用于比较 Java 中的字符串。利用:

if (book.getTitle().equals(title) && book.getAuthor().equals(author))

代替:

if (book.getTitle() == title && book.getAuthor() == author)
于 2013-09-23T13:32:16.900 回答
0

null如果没有找到任何内容并且比较String使用equals()方法时,您应该返回book.getTitle().equals(title)book.getAuthor().equals(author)您可以阅读有关将字符串与等号和赋值运算符进行比较的信息

于 2013-09-23T13:32:54.597 回答
0

我要么null在你的类的文档中返回并写下这个行为,要么抛出一个 Exception BookNotFoundException

于 2013-09-23T13:33:10.623 回答
0

您可以返回 null 表示未找到您的数据。

于 2013-09-23T13:33:19.933 回答
0

如果在列表中找不到 book 对象,您可以返回 null。并使用 .equals() 方法比较字符串。

  public Book getBook(String title, String author){
            Book book =null;
            for (int i = 0; i < listOfBooks.size(); i++){
                book = listOfBooks.get(i);
               if (book.getTitle().equals(title) && book.getAuthor().equals(author){
                  return book;
               }
           }
           return book;
   }
于 2013-09-23T13:33:50.753 回答