【发布时间】:2013-11-22 17:15:26
【问题描述】:
当我明确返回 Card 类型的变量“card”时,谁能看到为什么我会收到错误“此方法必须返回 Card 类型的结果”?
public Card playCard(int id){
int i = 0;
for (Card element : hand){
if (i <= hand.size())
{
if (element.getID() == id)
{
Card card = hand.get(i);
hand.remove(i);
return card;
}
else
{
i++;
}
}
else
{
throw new NullPointerException("Card does not exist in hand");
}
}
}
【问题讨论】:
-
提示:你需要
returnfrom所有可能的执行流程。 -
永远不要自己抛出
NullPointerException。 -
@arshajii 在检查后明确地抛出
NullPointerException,而不是可能进行一些昂贵的处理然后访问null,当然没问题。显式或隐式,异常应该相同(而不是InvalidArgumentException或其他),调用者不需要关心实现细节。当然这与这个问题无关,只是评论你的“从来没有”。
标签: java