2013-09-23 1 views
7

Я начал свое приключение с помощью Sonar;)UnnecessaryLocalBeforeReturn - почему это плохо?

Sonar с его конфигурацией по умолчанию имеет PMD UnnecessaryLocalBeforeReturn ошибка, установленная на основном уровне.

List<Todo> filtered = em.createQuery(query).getResultList(); 
    return filtered; 

Это означает, что я должен изменить этот код выше в одной строке.

Это действительно интересно для меня, потому что я рекомендую своим коллегам сделать это «ненужным» местным до возвращения.

Я думаю, что это облегчает отладку. Когда я устанавливаю точку останова на линии возврата, я уверен, что когда я доберусь туда, это значение будет готово, и мне не нужно делать выбор над моим заявлением или делать «Step over Expression».

Кроме того, я считаю, что это положительно влияет на уменьшение точек возврата в методах.

Мой вопрос: есть ли какие-либо объяснения/дискуссии, почему ошибки в таких проектах, как Checkstyle, PMD, FindBugs и т. Д., Были признаны ошибками?

+1

Это не плохо, просто лишний. Эти инструменты статического анализа не просто указывают ошибки. Вместо этого они предоставляют инструментальные панели для проверки всех видов вещей, выбор которых зависит от того, какое программное обеспечение вы разрабатываете. Ваш проект может потребовать от вас сделать все как можно меньше строк кода, или, может быть, ваш специальный компилятор не оптимизирует этот случай, и вы не можете удовлетворить дополнительный такт ... тогда эта проверка для вас. Иначе вы можете спокойно отключить его. –

+0

Это хороший родственный вопрос: http://stackoverflow.com/questions/31733811/local-variables-before-return-statements-does-it-matter/31734226#31734226 –

ответ

0

Если ваша точка просматривает только содержимое списка, вы можете просто поставить точку разрыва в вызывающего метода. Другой вариант - поставить точку останова и оценить значение (Eclipse & IntelliJ сделать это красиво).

Почему это считается плохой практикой?

Вы просто добавляете ссылку на переменную, в то время как это необязательно.

Это просто увеличивает нагрузку на сборщик мусора.

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

  • Нет связанных вопросов^_^