2014-11-25 2 views
1

Привет, я хочу, чтобы мой метод выполнял поиск книги с помощью идентификатора и возвращал заголовок, этот метод отлично работает, когда я printLn, но мне нужно, чтобы он возвращался, вместо этого я получаю ошибка: несовместимые типы неожиданного возвращаемого значения, что мне нужно делать?Beginners Java Blue J, возвращающий строку в методе

РЕДАКТИРОВАТЬ я теперь изменил пустоту в строку, однако я все еще получаю сообщение об ошибке: отсутствует возвращаемое значение

Спасибо заранее.

public void returnByBookID(int enterBookId) 
    { 
      Iterator<Book> it = books.iterator(); 
      while(it.hasNext()) { 
      Book books = it.next(); 
      if(books.idNumber == (enterBookId)){ 

      return books.title ; 
     } 
      } 
    } 

ответ

0

изменить код на следующее:

public String returnByBookID(int enterBookId) { 

    Iterator<Book> it = books.iterator(); 
    while(it.hasNext()) { 
     Book books = it.next(); 
     if(books.idNumber == (enterBookId)){ 

      return books.title ; 
     } 
    } 
    return "ID not found"; 
} 
1

Ваш метод возвращаемый тип void, изменить его String вернуть название книги.

public String returnByBookID(int enterBookId){ 
..................... 
.............. 
........ 

return books.title ; 

} 

Также return statement находится внутри if condition,

if(books.idNumber == (enterBookId)){ 
      return books.title ; 
     } 

либо взять пустую строку и присвоить название книги к нему, и возвратить ее или вернуть нулевое или Emty строку в последней.

public String returnByBookID(int enterBookId) 
String bookTitle = ""; 
    { 
      Iterator<Book> it = books.iterator(); 
      while(it.hasNext()) { 
      Book books = it.next(); 
      if(books.idNumber == (enterBookId)){ 
      bookTitle = books.title ; 
     } 
     } 

    return bookTitle ; 
    } 
Смежные вопросы