IntelliJ和源代码

时间:2017-03-25 14:59:53

标签: java intellij-idea code-duplication

我有三个实现Iterable接口的Java类。其中两个具有完全相同的iterator()方法实现,这会导致IntelliJ将代码标记为重复。

The code duplication soft warning yielded by IntelliJ

由于我使用的是Java 8,我可以将实现作为接口级别的“默认”推送,但这也需要在接口上添加私有字段,这实际上提供的信息比必要的更多,甚至如果可能的话(我是Java 8的新手,所以我不确定Java 8是否允许你在界面级别声明甚至初始化字段)。即使我这样做,也会有更多的类使用iterator()的不同实现来实现公共接口。

我在IntelliJ文档中找到了this link,其中包含以下内容:

  

为此,请在检查设置页面中选中忽略标记为已生成的来源中的重复代码复选框:[...]

不幸的是,尽管这个复选框确实出现在我的检查设置页面中:

enter image description here

选中该复选框后问题仍然存在。我不完全确定在上面发布的链接中“生成的源”是什么意思,我正在寻求一些帮助。

为了它的价值,我正在运行IntelliJ 2017.1终极版。

1 个答案:

答案 0 :(得分:0)

我使用了@ CrazyCoder上面的回复,发现并运行了IntelliJ提供的所谓的#34;代码分析"并发现了以下功能:

enter image description here

点击"禁用检查"确实解决了手头的问题,但总的来说这是不可取的。我真的很喜欢它,如果我能以某种方式只保留这个"弱警告"对于同源文件方法。如果我在public类定义中复制代码,通常是因为我知道自己在做什么,就像在这种情况下一样。