Czy można wyłączyć wykrywanie duplikatów kodu w Intellij?


144

Czy można wyłączyć wykrywanie duplikatów kodu w Intellij?

Ta funkcja nie jest przydatna i nadal mnie rozprasza.

Odpowiedzi:


201

Dostępne tylko w IntelliJ Ultimate:

Aby wyłączyć wykrywanie duplikatów kodu, przejdź do

Plik → Ustawienia → Edytor → Inspekcje → Ogólne → Zduplikowany fragment kodu

i odznacz pole „Powielony fragment kodu”. powielanie kodu Intellij


4
Ta opcja nie jest dostępna w wydaniu społeczności IDEA.
Saikat

4
Wykrywanie duplikatów kodu @takias nie jest w ogóle funkcją wersji Community. Występuje tylko w wersji Ultimate.
AER

2
W rzeczywistości działa po zamknięciu pliku, nad którym pracujesz i ponownym otwarciu go lub ponownym uruchomieniu IDE po zastosowaniu tych ustawień
ACV

1
Sugerowane działania powinny doprowadzić nas do tego ekranu, abyśmy mogli łatwiej wyłączyć sprawdzanie kodu.
Shadoninja

157

Dodaj wskazówkę do swojego kodu, aby inni znali Twój zamiar:

@SuppressWarnings("Duplicates")

3
Oto techniczna odpowiedź. Dzięki
Yougesh

14
Najlepsze rozwiązanie, ponieważ umożliwia stłumienie wojen, w których powielanie jest zamierzone.
user2120275

2
^ zrób to, nie wyłączaj go całkowicie. Powielony kod to zapach kodu, z wyjątkiem niektórych miejsc
Carson Graham

Żartujesz? Dodać kod, aby zrekompensować niedobór IDE?
ACV

15

Tak, jest to możliwe , ale zdecydowanie odradzam!

Duplikat kodu jest formą długu technicznego. Każdy zduplikowany kod, który zawiera błąd, oznacza, że ​​masz teraz zduplikowany błąd - wtedy ryzykujesz, że naprawiając go, naprawisz go tylko w jednym miejscu, a duplikat pozostanie ...

Jeśli ostrzeżenia o duplikatach kodu rozpraszają Cię, najlepszą strategią na pozbycie się ich jest usunięcie duplikatów kodu ... Twoja baza kodu i przyszli opiekunowie będą Ci wdzięczni za to


40
OK, ale czasami mam starą wersję i nową wersję tej samej klasy. Powielanie jest normalne, nie potrzebuję ostrzeżenia. Jest po prostu bardzo uciążliwy i ukrywa wiele innych przydatnych ostrzeżeń. Pytanie jest uzasadnione.
Florian F

3
Uważam, że uruchamia się błędnie w przypadku testów jednostkowych z podobnymi konfiguracjami. Czasami nie mogę go usunąć, nawet jeśli zmienię testy dość znacząco.
Julian Jocque

8
Nie zawsze jest to tak proste, jak pozbycie się wszystkich duplikatów! Na przykład w kontrolerach sieciowych istnieje wiele podobieństw, które oznaczają jako duplikaty, a nie są dokładnymi duplikatami. Korzyści płynące z logicznego rozdzielenia kontrolerów są przydatne na wiele sposobów, a to tylko jeden przykład. Z mojego doświadczenia wynika, że ​​projekty pragmatyczne nie purystyczne są realizowane.
Shawn Vader

5
Twierdzisz, że jest to możliwe, ale nie opisujesz, jak to zrobić. Jest wiele sytuacji, w których nie ma sensu próbować abstrakcyjnie. Proszę przynajmniej powiedzieć „Tak, oto jak, ALE ...”
Dilapidus

3
ta odpowiedź nie ma żadnego związku z pytaniem.
ACV

5

Ta odpowiedź może być trochę nieistotna, ale uznałem to za pomocne, Z tej odpowiedzi, jeśli chcesz ją wyłączyć dla określonego bloku kodu, a nie całej metody, klasy lub ide, po prostu dodaj następujący wiersz tuż przed tym blokiem kodu

//noinspection Duplicates

Uwaga: po tym wierszu nie można umieścić żadnego innego komentarza.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.