问题描述
我正在尝试为图书馆练习创建一种方法,但是,该方法存在一些问题 RentBook()。 基本上,我使用一种方法来添加要出租的书,使用我的代码时,它会将所有库存减少-1,而不是选择一种。
代码:
public String rentBook(Book book) {
for (int i = 0; i < books.length; i++) {
if ((books[i].equals(book)))
inStock[i]--;
}
return "book name" + book;
}
}
我的equals函数:
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Book other = (Book) obj;
if (id != other.id)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (Double.doubletoLongBits(price) != Double.doubletoLongBits(other.price))
return false;
return true;
}
我会得到什么:
[11、39、43、1、12、3]
我想要什么:
[12、39、44、2、13、4]
解决方法
尝试调试程序。
- 在
equals
方法中放入一些打印语句以打印要比较的两本书,以查看是否要比较?在逻辑中的不同位置打印它们并相应地标记它们。 - 使用一些特制的
book
对象来测试各种equals
条件。 - 在每次减少之后打印
instock
值。
最好的调试工具之一是print
语句。放心使用。