V6084. Suspicious return of an always empty collection.
Анализатор обнаружил выражение 'return', возвращающее всегда пустую коллекцию, которая была определена как локальная переменная.
Чаще всего это происходит из-за того, что в коллекцию забыли добавить элементы:
public List<Property> getProperties()
{
List<Property> properties = new ArrayList<>();
Property p1 = new Property();
p1.setName("property1");
p1.setValue(42);
return properties;
}
Объект подходящего типа был создан, но разработчик пропустил вызов 'properties.add(p1)', из-за чего метод 'getProperties' возвращает некорректные данные. Исправленный фрагмент кода:
public List<Property> getProperties()
{
List<Property> properties = new ArrayList<>();
Property p1 = new Property();
p1.setName("property1");
p1.setValue(42);
properties.add(p1); // <=
return properties;
}
В случае, когда необходимо вернуть пустую коллекцию, лучше сделать это явно:
public List<Property> getMutableProperties()
{
return new ArrayList<>();
}
public List<Property> getImmutableProperties()
{
return Collections.emptyList();
}