eclipse 重构

在上一篇有关常见Java违规的文章中 ,我列出了Java开发人员容易犯的一系列错误。 在重构Java项目以解决这些违规问题的同时,我广泛使用Eclipse的重构功能来快速更改代码。 下面是这种重构技术的汇编。

1.在块级语句周围添加花括号

用{curly braces}包装块级语句通常是一个好习惯。 但是,即使在块中只有一条语句,某些开发人员还是不希望用{}来包装它们。 但是如果您这样做,Checkstyle将会抱怨。

如果您要更改此设置,

if(condition) doSomething;

对此:

if(condition){doSomething();
}

Eclipse的源代码清理可为您提供帮助。

  1. 项目资源管理器中,右键单击源文件夹,然后选择源->清理…
  2. 选择使用自定义配置文件 ,然后点击旁边的自定义配置文件部分配置
  3. 默认情况下,清理操作配置为执行多个清理任务。 由于我们只专注于添加花括号,因此我们将禁用所有其他清理任务。 为此,请导航至“ 自定义清理”窗口中的所有选项卡,然后取消选择所有清理。
  4. 然后在“ 代码样式”选项卡中,选择“ 在if / while / for / do语句中使用块”选项,然后单击“ 确定”。
  5. 然后在“ 清理”对话框中,单击“ 下一步 ,然后将进行重构。 您将看到一个带有所做更改的评论页面。

2.将if语句合并为一个

可以说,您有如下代码:

if(isLoggedIn){if(isAdmin){doSecretStuff();}
}

将两个if语句合并为一个是安全的,除非在两个if语句之间有其他代码。 当然,您可以手动编辑代码以删除第二个if并将条件向上移动。 但是等等,当Eclipse可以为我们做这件事时,为什么我们要自己做呢?

  1. 将光标放在内部if语句的if关键字上。
  2. Ctrl + 1将打开上下文菜单。
  3. 选择选项将'if'语句与外部'if'语句连接
  4. 瞧! 现在将两个if语句合并为一个。

你会得到:

if(isLoggedIn && isAdmin){doSecretStuff();
}


3.重命名文件及其getter / setter方法

根据此 ,重命名的元素是在Eclipse中主要用于重构。 因此,当您重命名具有setter / getter方法的字段时,您将手动重命名那些方法名称。 但是Eclipse可以帮助简化此过程。

  1. 将光标放在要重命名的字段名称上。
  2. Ctrl + Shift ,然后连续两次按R键 ,这将打开“ 重命名字段”对话框。
  3. 在为您的字段提供新名称同时,检查“重命名获取器 ”和“ 重命名设置器”选项。
  4. 单击“确定”后,这将重命名该字段及其getter / setter方法。

4.反转if语句

假设您有如下代码:

if(!isLoggedIn){// ask to login
}else{// allow access
}

上面的代码是100%有效的。 但是诸如Checkstyle之类的代码质量工具可能会抱怨,因为我们在第一个条件下(即!isLoggedIn )使用了负性检查。 如果只有一种情况(只是if块),那么我们就不能做太多事情。 但是, 如果同时具有ifelse ,则可以反转条件以避免这种情况。

  1. 将光标放在第一个if关键字上。
  2. Ctrl + 1 ,然后选择Invert'if'statement
  3. Eclipse将反转条件和相应的块。
  4. 最终,您将获得:
    if(isLoggedIn){// allow access
    }else{// ask to login
    }

帮助提高代码的可读性。

结论:

当然,以上只是冰山一角。 Eclipse能够进行更多高级的重构。 那么, 您的秘密重构技术是什么?

参考: Veera Sundar博客上JCG合作伙伴 Veera Sundar 对类固醇的Eclipse重构 。

翻译自: https://www.javacodegeeks.com/2012/10/eclipse-refactoring-on-steroids.html

eclipse 重构

eclipse 重构_Eclipse对类固醇的重构相关推荐

  1. Eclipse对类固醇的重构

    在上一篇有关常见Java违规的文章中 ,我列出了Java开发人员容易犯的一系列错误. 在重构Java项目以解决这些违规问题的同时,我广泛使用了Eclipse的重构功能来快速更改代码. 下面是这种重构技 ...

  2. 代码重构(五):继承关系重构规则

    陆陆续续的发表了多篇关于重构的文章了,还是那句话,重构是一个项目迭代开发中必不可少的一个阶段.其实重构伴随着你的项目的整个阶段.在前几篇关于重构的文章中我们谈到了函数的重构.类的重构.数据的重构以及条 ...

  3. 什么是重构,什么不是重构

    英文原文:What Refactoring is, and what it isn't,翻译:外刊IT评论 有时候,会有程序员跑到我这里说他们不喜欢某个东西的设计,"我们需要给它来个全面的重 ...

  4. 重构 java代码_java代码重构的方法学习

    2,8阅读 第一章  第一个案例 在此案例中使用了, 方法的提取(extract method),方法的移动(move method),临时变量的清除,变量及函数名重构,switch类型重构(repl ...

  5. java代码重构工具_代码重构什么意思 Java代码重构的几种模式

    指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果. 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方.在极限编程的方法学中,重构需要单元测试来支持. 在软件工程 ...

  6. 配电网重构matlab程序,配电网络重构matlab代码

    [实例简介] 配电网络重构matlab代码 对初学者有一定用处 [实例截图] [核心代码] 配电网络重构matlab代码 └── 配电网络重构matlab代码 ├── IEEE33 │   ├── c ...

  7. java代码重构的思路Java代码重构的几种模式

    Java代码重构的几种模式 Java代码的重构模式主要有三种:重命名方法重构模式.引入解释性变量重构模式.以查询取代临时变量重构模式重命名方法重构模式建议执行如下的步骤来完成:1.建立一个具有新名称的 ...

  8. 怎么把HTML网页重构为VUE,前端VUE重构之路

    今年8月份进入前端重构组,用vue重构jq老工程,记录一下在重构过程中遇到的问题.解决方法和一些心得体会吧.项目技术栈:Vue + Vue-Router + Vuex, UI组件库用的有赞的vant ...

  9. 【重构篇js案例解析重构】第一章 重构的原则

    重构的原则 重构代码示例 重构前的代码 var plays = {"hamlet": { "name": "Hamlet", "t ...

最新文章

  1. 【重磅来袭】斯坦福开源Python版NLP库Stanza:涵盖66种语言!
  2. html多重边框,中间空白,【基础】CSS实现多重边框的5种方式
  3. 送一台自用笔记本电脑!新款
  4. configure: error: Neither flex nor lex was found.
  5. 一文看懂async和“await”关键词是如何简化了C#中多线程的开发过程
  6. ZDB5202烧成控制器方法
  7. 4种分布式Session的实现方式!老大直呼666...
  8. 云计算产生的新生事物一云桌
  9. Java List 的merge
  10. PHP:header()函数
  11. Gentle.NET Attribute
  12. 如何使用C#编写用友U8软件相关功能,适用于插件和二次开发
  13. EDA软件_AD14绘制等长线
  14. 5 步教你将 MRS 数据导入 DWS
  15. python身份证区域分割_python 身份证归属地解析
  16. PTA 顺序结构 7-3 计算代数表达式
  17. java毕业生设计校园租赁系统的设计与实现计算机源码+系统+mysql+调试部署+lw
  18. 紫书刷题记录 UVa1593 代码对齐
  19. 华为智能家居app未能连接上远程云服务_华为智能家居APP上路由器离线怎么办_app无法管理路由器修复方法_全球下载...
  20. 【2019.05.23】JS逆向——破解裁判文书网参数(vl5x,guid )爬虫 超级详细

热门文章

  1. mybatis入门(四)之动态SQL
  2. List实现类中调用下标删除VS调用元素删除
  3. Mybatis入门 使用注解
  4. android微信分享之创建工程以及启动微信
  5. android输入时背景颜色,Button根据EditText输入状态改变背景颜色
  6. 权限管理系统2_权限表,权限模块表
  7. android 枚举类型比较大小写,Spring 3.0 MVC绑定枚举区分大小写
  8. python中debug有什么用途_史上最方便的Python Debug工具
  9. 局域网物理机怎么访问虚拟机
  10. 常见的并发模型_两个常见的并发错误