是否可以在Intellij中禁用重复代码检测?


144

是否可以在Intellij中禁用重复代码检测?

我没有发现此功能有用,它继续分散我的注意力。

Answers:


201

仅在IntelliJ Ultimate中可用:

要禁用重复代码检测,请转到

文件→设置→编辑器→检查→常规→复制的代码片段

并取消选中“重复代码片段”复选框。 IntelliJ代码重复


4
此选项在IDEA社区版中不可用。
赛卡特

4
@takias重复代码检测根本不是Community Edition中的功能。仅在Ultimate版中提供。
AER

2
实际上,在您关闭要使用的文件并重新打开文件或应用这些设置后重新启动IDE之后,它才起作用
ACV

1
建议的操作应可带我们进入此屏幕,以便我们可以更轻松地禁用这些代码检查。
Shadoninja '19

157

在您的代码中添加提示,以便其他人知道您的意图:

@SuppressWarnings("Duplicates")

3
这是技术答案,谢谢
Yougesh '17

14
最佳解决方案是在有意复制的情况下抑制交战。
user2120275 '17

2
^这样做,不要完全禁用它。重复的代码是代码异味,但在某些地方除外
Carson Graham

你在开玩笑?添加代码以弥补IDE的不足?
ACV

15

是的,有可能,但我强烈建议您不要这样做!

重复代码是技术债务的一种形式。任何包含错误的重复代码都意味着您现在有一个重复的错误-然后冒着风险,在修复它时,只能将其修复在一个地方,而重复的将保留...

如果重复的代码警告使您分心,那么摆脱它们的最佳策略是消除代码重复。您的代码库和未来的维护人员将感谢您


40
可以,但是有时我具有同一类的旧版本和新版本。重复是正常的,我不需要警告。它非常具有侵入性,并且隐藏了许多其他有用的警告。这个问题是合法的。
Florian F

3
我发现对于具有类似设置的单元测试,它会错误触发。有时候,即使我确实做了相当大的改变,我也无法消除它。
朱利安·约克

8
它并不总是像摆脱所有重复一样简单!例如,在Web控制器中,存在很多相似之处,它们将重复标记为完全不重复。保持控制器逻辑上分开的好处在许多方面都是有用的,这只是一个示例。务实而不是纯粹主义者会以我的经验交付项目。
肖恩·维达

5
您声称这是可能的,但您没有描述如何做到。在很多情况下,尝试抽象是没有意义的。请至少说:“是的,这是怎么回事……”
Dilapidus

3
这个答案根本与问题无关。
ACV

5

这个答案可能有点无关紧要,但是我发现这很有用,如果您要针对特定​​代码块而不是整个方法,类或ide禁用它,则可以从此答案中删除,然后在该代码块之前添加以下行

//noinspection Duplicates

注意:您不能在此行之后添加任何其他注释。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.