Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果找不到要返回的对象,我应该从方法返回什么?_Java - Fatal编程技术网

Java 如果找不到要返回的对象,我应该从方法返回什么?

Java 如果找不到要返回的对象,我应该从方法返回什么?,java,Java,以下是我的方法: 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 bo

以下是我的方法:

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;
        }
    }
}
publicbookgetbook(字符串标题,字符串作者){
对于(int i=0;i

如果在图书列表中找不到这本书,我应该返回什么?

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

注意:使用
equals()
比较字符串:

if (book.getTitle().equals(title) && book.getAuthor().equals(author)) {
p.p.S.以下编写循环的方法可以说更为惯用,在某些情况下可能会快得多:

for (Book book : listOfBooks) {

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

注意:使用
equals()
比较字符串:

if (book.getTitle().equals(title) && book.getAuthor().equals(author)) {
p.p.S.以下编写循环的方法可以说更为惯用,在某些情况下可能会快得多:

for (Book book : listOfBooks) {

您可以简单地
返回null如果找不到书本,或抛出自定义的
异常
,如“NotFoundException”

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

if (book.getTitle().equals(title) && book.getAuthor().equals(author))
而不是:

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

您可以简单地
返回null如果找不到书本,或抛出自定义的
异常
,如“NotFoundException”

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

if (book.getTitle().equals(title) && book.getAuthor().equals(author))
而不是:

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

如果未找到任何内容,则应返回
null
,并在比较
String
时使用
equals()
方法
book.getTitle().equals(title)
book.getAuthor().equals(author)
您可以阅读如果未找到任何内容,则应返回
null
,并在比较
String
时使用
equals()
方法
book.getTitle().equals(title)
book.getAuthor().equals(author)
您可以阅读

我要么返回
null
并在类的文档中写入此行为,要么抛出异常
BookNotFoundException
我要么返回
null
并在类的文档中写入此行为,或者抛出一个从Java.lang.Exception继承的异常
BookNotFoundException

返回
null
或者抛出一个从Java.lang.Exception继承的
BookNotFoundException
或者抛出一个从Java.lang.Exception继承的
BookNotFoundException
异常Java.lang.Exception

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

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

如果在列表中未找到图书对象,则可以返回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;
   }
publicbookgetbook(字符串标题,字符串作者){
Book=null;
对于(int i=0;i
如果在列表中找不到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;
   }
publicbookgetbook(字符串标题,字符串作者){
Book=null;
对于(int i=0;i
return有什么问题
null
!!如果找不到书,您可以返回null。return
null有什么问题
null
!!如果找不到书,您可以返回null。我读过有效的Java,返回null不是一个好习惯。相反,我们可以返回空对象,或者引发异常。这完全取决于调用者和被调用者,但我也更喜欢返回一个自定义的
异常
。我在有效的Java中读过,返回null不是一个好习惯。相反,我们可以返回一个空对象,或者抛出一个异常。这完全取决于调用者和被调用者之间的约定,但我也更喜欢返回一个自定义的
异常
+1,抛出一个Exception在这里可能是非常有效的替代方法,这取决于条件是否可恢复。+1,抛出异常在这里可能是非常有效的替代方法,这取决于条件是否可恢复。