这是我的方法:
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中找不到该书,我应该返回什么?
答案 0 :(得分:5)
返回null
(并记录行为)是一个相当明显的选择。
P.S。使用equals()
比较字符串:
if (book.getTitle().equals(title) && book.getAuthor().equals(author)) {
P.P.S。编写循环的以下方式可以说是更惯用的,在某些情况下可能会更快:
for (Book book : listOfBooks) {
答案 1 :(得分:4)
返回null
或抛出您编写的继承自Java.lang.Exception的BookNotFoundException
异常
答案 2 :(得分:2)
如果找不到Book,你可以简单地return null;
或抛出像'NotFoundException`这样的自定义Exception
。
顺便说一句,你不能使用==
来比较Java中的String。使用:
if (book.getTitle().equals(title) && book.getAuthor().equals(author))
而不是:
if (book.getTitle() == title && book.getAuthor() == author)
答案 3 :(得分:0)
如果找不到任何内容,并且在比较null
使用String
方法equals()
和book.getTitle().equals(title)
时,您应该返回book.getAuthor().equals(author)
您可以阅读comparing string with equals and assignment operator
答案 4 :(得分:0)
我要么返回null
并在你的类的文档中写下这个行为,要么抛出异常BookNotFoundException
。
答案 5 :(得分:0)
您可以返回null表示您找不到数据。
答案 6 :(得分:0)
如果在列表中找不到书籍对象,则可以返回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;
}