基本上,你需要检查你是否真的有三个终结者,这构成了你的 else-if 子句。
public String toString()
{
String details = number + ", " + RACE_DESCRIPTIONS[typeIndex] + "[" + date + "]" + ":";
if(!hasFinished) // The race has not yet finished.
{
details += "Race not finished";
}
else if(competitors.length >= 3) // Implies that hasFinished evaluated to true
{
details += "\n 1st: " + competitors[0].getName();
details += "\n 2nd: " + competitors[1].getName();
details += "\n 3rd: " + competitors[2].getName();
}
else // The race has finished, but there are less than three competitors
{
details += "n/a";
}
return details;
}
如果您希望允许少于三个竞争对手,但仍显示第 1/2/3 个,您可以使用三元比较并将 else-if 子句替换为 else。
public String toString()
{
String details = number + ", " + RACE_DESCRIPTIONS[typeIndex] + "[" + date + "]" + ":";
if(!hasFinished)
{
details += "Race not finished";
}
else // Implies that hasFinished evaluated to true
{
details += "\n 1st: " + (competitors.length >= 1 ? competitors[0].getName() : "n/a");
details += "\n 2nd: " + (competitors.length >= 2 ? competitors[1].getName() : "n/a");
details += "\n 3rd: " + (competitors.length >= 3 ? competitors[2].getName() : "n/a");
}
return details;
}