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.

zudduz
źródło

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

Vojtech Ruzicka
źródło
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")
Max Barrass
źródło
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

Kevin Wright
źródło
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.

Emdadul Sawon
źródło