возвращает значение null, когда список пуст ошибка: [return.type.incompatible]

#java #list #object #arraylist #collections

#java #Список #объект #список массивов #Коллекции

Вопрос:

Я пытаюсь вернуть значение null, когда список пуст:

 public List<Object> extractOutput(List<Object> accumulator) {
  if (accumulator.isEmpty()){
    return null;
  }
  return accumulator;
}
 

Но я получаю сообщение об ошибке: [return.type.incompatible].
Я был бы очень признателен, если бы я решил эту проблему.

Комментарии:

1. Считается плохой практикой возвращать null , когда вместо этого вы могли бы вернуть emptyList() и избавить вызывающего от необходимости выполнять проверки null.

2. Я полагаю, что метод extractOutput() переопределяет extractOutput() метод в суперклассе с неправильным типом возвращаемого значения.

Ответ №1:

Возврат null считается плохой практикой. Было бы гораздо лучшим решением, если бы ваш метод extractOutput() возвращал пустой список вместо null .

Решение:

 public List<Object> extractOutput(List<Object> accumulator) {
  if (accumulator.isEmpty()){
    return Collections.emptyList();
  }
  return accumulator;
}
 

Я надеюсь, что смогу помочь вам, продолжайте вашу замечательную работу!