2016-03-09 4 views
-1

Я продолжаю получать недостающую ошибку утверждения return, но я не знаю, где. Каждый раз, когда я следую коду, я чувствую, что хотя бы один из операторов if предоставляет оператор return.Отсутствует заявление о возврате

Код:

public User[] getUsersContaining(String query) { 
    User[]nameSearch = new User[this.capacity]; 

    if(nameSearch == null) 
     return null; 
    for (int i=0; i<this.capacity; i++){ 
     if(this.array[i].getName().contains(query)){ 
     nameSearch[i]=this.array[i]; 
     bubbleSort date2 = new bubbleSort(); 
     date2.bubblesort(nameSearch); 
     return nameSearch; 
     } 
    } 
} 
+0

Хорошо, я думаю, я понимаю что ты имеешь в виду. Если я поставлю оператор return в конце метода, это означает, что это будет окончательное возвращаемое значение? Когда я возвращаю null в конце метода, приложение выдает ошибку, поэтому я не знаю, что вернуть в противном случае. Когда я попробую else вернуть null после оператора if, я все равно получаю ошибку отсутствия возвращаемого выражения. Извините, я очень новичок в программировании. – user6036979

+0

, если ваша функция предназначена для 'get ...' что-то, вы возвращаете то, что функция предназначена для «получения». Ваша функция называется «getUsersContaining», поэтому вы должны возвращать пользователей, которые содержат строку. – Carcigenicate

+0

Ошибка возникает, потому что если 'this.capacity' == 0 и nameSearch! = Null, ваша функция ничего не вернет, так как она никогда не входит в цикл. – Carcigenicate

ответ

3

Метод, который объявляет тип возвращаемого значения должен объявить оператор возврата для каждой возможной ветви течения этого метода. Это означает, что в вашем методе есть поток кода, который не заканчивается оператором return (подсказка: что произойдет, если ваш оператор if каждый раз возвращает ложь внутри цикла? В конце концов цикл закончится, и ничего не будет возвращено.)

вы можете положить кетчуп всему геЬигп в нижней части вашего метода делает что-то вроде возвращения null, или, возможно, даже бросать Exception, который позволит вам не «ничего возвращать»

Смежные вопросы