2013-09-23 15 views
7

Zacząłem swoją przygodę z Sonarem;)NiepotrzebneLocalBeforeReturn - dlaczego jest źle?

Sonar z jego domyślną konfiguracją ma ustawiony błąd PMD NiepotrzebnyLokalnyBłąd i Powrot na głównym poziomie.

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

Dla mnie oznacza to, że powinienem zmienić powyższy kod powyżej w jednej linii.

To naprawdę interesujące dla mnie, ponieważ polecam moim kolegom, aby ten "niepotrzebny" lokal przed powrotem.

Myślę, że ułatwia to debugowanie. Kiedy ustawiam punkt przerwania na linii powrotnej, jestem pewna, że ​​kiedy się tam dostanę, ta wartość będzie gotowa i nie będę musiał wybierać mojego oświadczenia ani robić "Wyrażam więcej uwagi".

Poza tym uważam, że ma pozytywny wpływ na zmniejszenie liczby punktów zwrotnych w metodach.

Moje pytanie brzmi: Czy są jakieś wyjaśnienia/dyskusje, dlaczego błędy z projektów takich jak Checkstyle, PMD, FindBugs itp. Zostały uznane za błędy?

+1

To nie jest złe, tylko niepotrzebne. Te narzędzia do analizy statycznej nie oznaczają jedynie błędów. Zamiast tego dostarczają skrzynki narzędziowe do sprawdzania różnych rzeczy, których wybór zależy od rodzaju tworzonego oprogramowania. Twój projekt może wymagać, abyś zrobił wszystko w jak najmniejszej liczbie wierszy kodu, a może twój specjalny kompilator nie zoptymalizuje tej sprawy i nie możesz dopuścić dodatkowego cyklu zegara ... to ta kontrola jest dla ciebie. W przeciwnym razie można go bezpiecznie wyłączyć. –

+0

To jest dobre, pokrewne pytanie: http://stackoverflow.com/questions/31733811/local-variables-before-return-statements-does-it-matter/31734226#31734226 –

Odpowiedz

0

Jeśli Twój punkt ogląda tylko zawartość Listy, możesz równie dobrze umieścić punkt przerwania w wywołującej metodę. Inną opcją jest wstawienie punktu przerwania i oszacowanie wartości (Eclipse & IntelliJ to ładnie).

Dlaczego jest uważany za zły proceder?

Wystarczy dodać odniesienie do zmiennej, gdy nie jest to konieczne.

To tylko zwiększa obciążenie pracą w Garbage Collectorze.

Powiązane problemy