我有一种方法需要显示输入系统的出价历史记录,以及我现在对该方法的看法是:
@Override
public String displayHistory() {
String bidder = toString();
if (this.bids.isEmpty()) {
return bidder + " = no bids";
}
for (int i = 0; i < this.bids.size(); i++) {
bidder = "\n" + this.bids.get(i).toString() + "\n";
}
return toString() + " = " + bidder;
}
toString
方法:(正确)
@Override
public String toString() {
return this.productId + ": " + this.productName;
}
我需要做的方法是以通过我的测试类的形式打印出来:
测试类代码:
assertEquals("1: teddy = \n"+"J***e bid £7.0\n"+"S***a bid £5.0\n",product1.displayHistory());
1:teddy = \ n J *** e出价£7.00 \ n S ***出价$ 5.00 \ n
但目前我的方法是打印这个:
1:teddy = \ n J *** e出价£7.00 \ n 空白\ n
然而,当我调试程序并在此时检查数组列表时,第二个出价在内部但没有显示for循环。
有没有办法可以更改这个循环,以便打印出数组列表中的所有值,而不仅仅是输入到列表中的最后一个值?我假设它必须使用循环系统,但也许不是?任何帮助将不胜感激。
答案 0 :(得分:0)
在你的循环中:
for (int i = 0; i < this.bids.size(); i++) {
bidder = "\n" + this.bids.get(i).toString() + "\n";
}
您每次将当前一次出价分配给bidder
变量。相反,你应该添加bidder += ...
,但是StringBuilder.append()