codecamp

IntelliJ IDEA分析重复项

IntelliJ IDEA 分析重复项

注意:此功能仅在 Ultimate 版本中受支持。

IntelliJ IDEA 可以帮助您在一定范围内找到重复的代码块。此范围可以是单个文件、项目、模块或自定义范围。分析结果显示在 "重复" 工具窗口的 "专用" 选项卡中。

IntelliJ IDEA 搜索重复项

  1. 执行以下操作之一:
    • 在主菜单上选择 分析| 查找重复项(Analyze | Locate Duplicates)。
    • 在编辑器或项目工具窗口的上下文菜单中选择分析|找到重复命令(Locate Duplicates)。
  2. 在 "指定代码复制分析范围" 对话框中,指定分析范围(整个项目、当前文件、未提交的文件(对于版本控制下的项目)或某些自定义范围)。此外,您还可以将测试源包含在分析中。

    单击“确定”,准备就绪。

  3. 在“代码复制分析设置”对话框中,请执行以下操作:
    1. 选择要在其中执行分析的语言。
    2. 对于每种语言,请检查选项以定义分析的首选项。

      例如,您可以选择请求相同的代码片段匹配被视为重复项,或者指定一个特定的限制,以下的代码结构不被认为是重复的(以避免报告if源代码中的每个构造)。

    单击“确定”。
  4. 在“重复”工具窗口,浏览搜索结果。
    IntelliJ IDEA 搜索重复项
    • 在工具窗口的左窗格中查看重复项列表。
    • 查看右窗格中找到的重复项之间的差异。使用箭头按钮将所选副本放在差异查看器的其中一个部分,并比较代码片段。
    • 导航到编辑器中的重复项,使用“跳转到源”或“显示重复上下文”菜单的源命令。
    • 通过单击 并在 "提取方法" 对话框中指定方法名称和参数来消除源代码中的重复项。这个程序类似于提取方法重构,唯一的区别是,在重复分析的情况下,重复的代码块被自动找到。

IntelliJ IDEA 动态检测重复项

IntelliJ IDEA 可以动态查找重复的内容。这是由检查 一般| 重复的代码((General | Duplicated Code))。

如果您偶然发现一个现有的副本,或者通过编写或粘贴代码创建一个副本,您将立即知道:

IntelliJ IDEA 动态检测重复项

检查伴随着快速修复,它使您能够导航到检测到的重复项,或在 "查找工具" 窗口中查看所有这些副本:

IntelliJ IDEA 动态检测重复项

请注意,IntelliJ IDEA 有助于避免在生成的源中找到重复项。

为此,选中该复选框可忽略在 "检查设置" 页中标记为 "生成的源" 中的重复代码:

IntelliJ IDEA 动态检测重复项

IntelliJ IDEA有哪些依赖关系分析
IntelliJ IDEA如何分析数据流
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }