, , / .
-, , :
public Book getBook() {
public static Book NO_BOOK = new Book();
if(books.empty()) {
return NO_BOOK;
}
...
}
book = shelf.getBook();
if(Book.NO_BOOK.equals(book)) {
}
null, , ,
public Book getBook() {
if(books.empty()) {
return null;
}
...
}
book = shelf.getBook();
if(book == null) {
}
, , hasMoreBooks.
public boolean hasMoreBooks() {
return (! books.empty());
}
public Book getBook() {
if(books.empty()) {
throw new IllegalStateException("no more books");
}
...
}
if(shelf.hasMoreBooks()) {
book = shelf.getBook();
}
Maybe Haskell . , " ". , . , ( ..) (null is teh devil;), . Java , .
" ", , , " " , .
: , , . ( hasMoreBooks) , , .
, , , FAR , , - :
try {
while(true) {
book = shelf.getBook();
...
}
} catch(IllegalStateException ex) {
}
, , ... hasMoreBooks, , , .