Может ли кто-нибудь понять, почему я получаю сообщение об ошибке «Этот метод должен возвращать результат типа 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");
}
}
}
Подсказка: вам нужно «вернуть» из всего возможного потока выполнения. –
Никогда не бросайте 'NullPointerException' самостоятельно. – arshajii
@arshajii Throwing «NullPointerException» явно после проверки, вместо того, чтобы, возможно, выполнить некоторую дорогостоящую обработку, а затем получить доступ к «null», безусловно, отлично. Явное или неявное исключение должно быть одинаковым (вместо 'InvalidArgumentException' или что-то еще), вызывающему абоненту не нужно заботиться о деталях реализации. Конечно, это не имеет никакого отношения к этому вопросу, просто комментируя ваш «никогда». – hyde