热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何跨文件提取方法?

如何解决《如何跨文件提取方法?》经验,为你挑选了2个好方法。

在我的项目的所有java文件中,我想替换出现的:

myObject.getName() == null

接着就,随即:

myObject.hasName()

IntelliJ IDEA是否有任何行动或策略可以做到这一点?

我希望它特定getName我的类的方法MyClass而不是替换代码,它引用getName其他类调用的方法.

我希望它能找到尽可能多的匹配.它不应该关心额外的空格,换行符等.如果变量有另一个名称(如myObjobjX),它也应该工作.getObject().getName()也应该找到类似的电话.(搜索必须关注语义).

我希望它快速而不是要求我逐个完成数百场比赛.

Bas Leijdekk.. 12

使用结构搜索和替换(编辑|查找|替换结构...),它是专为这样的用例设计的.

使用搜索模板:

$x$.getName() == null

替换模板:

$x$.hasName()

单击" 编辑变量..."按钮并将" 表达式类型"(regexp)指定为MyClass.搜索时也会找到你的例子getObject().getName() == null



1> Bas Leijdekk..:

使用结构搜索和替换(编辑|查找|替换结构...),它是专为这样的用例设计的.

使用搜索模板:

$x$.getName() == null

替换模板:

$x$.hasName()

单击" 编辑变量..."按钮并将" 表达式类型"(regexp)指定为MyClass.搜索时也会找到你的例子getObject().getName() == null



2> Meo..:

使用查找和替换代码重复项.

    创建实例方法:

    public boolean hasName() {
        return getName() == null;
    }
    

    为此,我建议选择myObject.getName() == null,然后使用动作Refactor | 提取| 方法......重构| 移动...,这样您就不必输入任何代码.

    单击该方法并使用Refactor | 查找和替换代码重复项.

    但是,它不会重构这样的用法:

    String name = myObject.getName();
    if (name == null) {
        ...
    }
    

    您还可以在非实例方法上使用此操作:

    private boolean hasName(MyClass myObject) {
        return myObject.getName() == null;
    }
    

    这将导致方法静态,然后使用Refactor | 转换为实例方法.结果相同.


推荐阅读
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • node.jsurlsearchparamsAPI哎哎哎 ... [详细]
  • Python中的PyInputPlus模块原文:https ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 巧用arguments在Javascript的函数中有个名为arguments的类数组对象。它看起来是那么的诡异而且名不经传,但众多的Javascript库都使用着它强大的功能。所 ... [详细]
  • 我将SpringMVC升级到Spring3.2.5.我的一些剩余调用即使存在,也会返回无法识别的字段异常.这是错误.Resolvingexceptionfrom ... [详细]
author-avatar
敬炜8965肀
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有