Có thể tắt phát hiện mã trùng lặp trong Intellij?


144

Có thể tắt phát hiện mã trùng lặp trong Intellij?

Tôi không thấy tính năng này hữu ích và nó tiếp tục làm tôi mất tập trung.

Câu trả lời:


201

Chỉ có trong IntelliJ Ultimate:

Để tắt phát hiện mã trùng lặp, hãy đi đến

Tệp → Cài đặt → Trình chỉnh sửa → Kiểm tra → Chung → Đoạn mã trùng lặp

và bỏ chọn hộp "Đoạn mã trùng lặp". sao chép mã intellij


4
Tùy chọn này không có sẵn trong phiên bản cộng đồng IDEA.
Saikat

4
@takias phát hiện mã trùng lặp hoàn toàn không phải là một tính năng trong phiên bản Cộng đồng. Nó chỉ hiện diện trong phiên bản Ultimate.
AER

2
Trên thực tế, nó hoạt động sau khi bạn đóng tệp bạn làm việc và mở lại hoặc khởi động lại IDE sau khi bạn áp dụng các cài đặt này
ACV

1
Các hành động được đề xuất sẽ đưa chúng ta đến màn hình này để chúng ta có thể vô hiệu hóa các kiểm tra mã này dễ dàng hơn.
Shadoninja

157

Thêm một gợi ý cho mã của bạn để người khác biết ý định của bạn:

@SuppressWarnings("Duplicates")

3
Đây là câu trả lời kỹ thuật, Cảm ơn
Yougesh

14
Giải pháp tốt nhất như cho phép ngăn chặn chiến tranh trong đó sự trùng lặp là có chủ ý.
dùng2120275

2
^ làm điều này, đừng vô hiệu hóa nó hoàn toàn. Mã trùng lặp là mùi mã ngoại trừ ở một số nơi
Carson Graham

Bạn đang nói đùa? Thêm mã để bù cho sự thiếu hụt IDE?
ACV

15

Có, đó là có thể , nhưng tôi sẽ mạnh mẽ khuyên chống lại nó!

Mã trùng lặp là một hình thức của nợ kỹ thuật. Bất kỳ mã trùng lặp nào có lỗi đều có nghĩa là bạn hiện đang có một lỗi trùng lặp - sau đó bạn sẽ gặp rủi ro là khi bạn sửa nó, bạn sẽ chỉ sửa nó ở một nơi và bản sao sẽ vẫn còn ...

Nếu các cảnh báo mã trùng lặp làm bạn mất tập trung, thì chiến lược tốt nhất để loại bỏ chúng là loại bỏ trùng lặp mã ... Cơ sở mã của bạn và các nhà bảo trì trong tương lai sẽ cảm ơn bạn vì điều đó


40
OK, nhưng đôi khi tôi có phiên bản cũ và phiên bản mới cùng loại. Có sự trùng lặp là bình thường, tôi không cần cảnh báo. Nó chỉ là rất xâm phạm và ẩn giấu nhiều cảnh báo hữu ích khác. Câu hỏi là hợp pháp.
Florian F

3
Tôi thấy nó bắn nhầm cho các bài kiểm tra đơn vị với các thiết lập tương tự. Đôi khi tôi không thể làm cho nó biến mất ngay cả khi tôi thay đổi các bài kiểm tra khá đáng kể.
Julian Jocque

8
Nó không phải lúc nào cũng đơn giản như loại bỏ tất cả các bản sao! Ví dụ, trong các bộ điều khiển web có rất nhiều điểm tương đồng đánh dấu các bản sao chúng không phải là bản sao chính xác. Lợi ích của việc giữ bộ điều khiển của bạn tách biệt một cách hợp lý là hữu ích theo nhiều cách và đó chỉ là một ví dụ. Chủ nghĩa thực dụng không thuần túy được giao dự án theo kinh nghiệm của tôi.
Shawn Vader

5
Bạn khẳng định nó là có thể và bạn không mô tả làm thế nào. Có rất nhiều tình huống mà nó không có ý nghĩa để thử và trừu tượng. Ít nhất hãy nói "Vâng, đây là cách, NHƯNG ...."
Dilapidus

3
Câu trả lời này không liên quan đến câu hỏi.
ACV

5

Câu trả lời này có thể không liên quan, nhưng tôi thấy điều này hữu ích, Từ câu trả lời này nếu bạn muốn vô hiệu hóa nó cho một khối mã cụ thể, không phải toàn bộ phương thức hoặc lớp hoặc ide, sau đó chỉ cần thêm dòng sau ngay trước khối mã đó

//noinspection Duplicates

Lưu ý: Bạn không thể đặt bất kỳ bình luận nào khác sau dòng này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.