我正在尝试在“图书馆”中实施一种方法。允许成员取出具有用户指定的标题和作者的Book对象的类。它首先检查找到与标题和作者匹配的书,然后检查以确保该成员还没有借出该书。这是我方法的代码,请让我知道我哪里出错了。 borrowBook和if(memberName.getBooks()。contains(...)方法都可以独立工作,但是当我在这段代码中使用它们时,它们似乎无法执行。
public void memberBorrowBook1(Member memberName, String title2, String author2)
{
//Test each book object in the library class to see if the parameters match
for(Book a:books) {
if(a.getTitle() == title2 && a.getAuthor() == author2); {
//If title and author match, check to see if the member already has a copy of this book on loan
for(Book b:memberName.getBooks()) {
if(memberName.getBooks().contains(a)) {
System.out.println("Member already has a copy of that book loaned out");
//Otherwise, loan the book out to the member
} else {
memberName.borrowBook(a);
}
}
}
}
}
答案 0 :(得分:2)
这很突出:
if(a.getTitle() == title2 && a.getAuthor() == author2); {
首先:使用equals()比较String值!
第二:不要使用那个分号 - 如果只是控制一个空语句(在)
和;
之间)
然后:
for(Book b:memberName.getBooks()) { // remove this statement
if(memberName.getBooks().contains(a)) {
你不需要另一个循环 - 包含就可以了。