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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/370932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务发展的历史_“美丽新羌 光照未来” 新羌社区开展微视频宣传片拍摄活动...

见圳客户端、深圳新闻网讯(记者 王志明 通讯员 甘力宇)为记录新羌社区的历史变迁,弘扬新羌人与时俱进、开拓进取的创新精神,宣传社区党委、社区一线工作者及社区居民的感人事迹和精神,展现深圳社区发展新风貌,2020年10月&#xff…

linux中扫描仪驱动程序,VueScan For Linux通用扫描仪驱动下载_VueScan For Linux通用扫描仪驱动官方下载-太平洋下载中心...

VueScan For Linux通用扫描仪驱动是一款提供 Linux 使用的图片扫描工具,它具有各种高级硬件能力使用非常广泛的的扫描仪软件,支持EPSon、HP、Nikon 和Canon 品牌的扫描仪设备,具有优良的色彩保真度和色彩平衡,可以让用户比平板扫描…

HTML head 头部中的各类标签

HTML <head> 头部 <head> 元素包含了所有的头部标签元素。在 <head>元素中你可以插入脚本&#xff08;scripts&#xff09;, 样式文件&#xff08;CSS&#xff09;&#xff0c;及各种meta信息。 可以添加在头部区域的元素标签为: <title>, <style&g…

CSS变量(自定义属性)实践指南

本文翻译自&#xff1a;https://www.sitepoint.com/practical-guide-css-variables-custom-properties/ 转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 Sass和Less这样的预处理器&#xff0c;让…

避免使用FOR –反假战役

您是否想知道FOR如何影响您的代码&#xff1f; 他们如何限制您的设计&#xff0c;更重要的是如何将您的代码转换为无人为含义的多行代码&#xff1f; 在这篇文章中&#xff0c;我们将看到如何将for的简单示例&#xff08;由Francesco Cirillio提供- 反if活动&#xff09;转换为…

ffmpeg-win32-v3.2.4 下载_MVBOX下载|MVBOX 7.1.0.4官方版

还是要强调一句&#xff0c;现在市面上很多盗版或者免费的软件&#xff0c;都给一些黑客留下了暗门&#xff0c;所以大家还是支持正版比较好&#xff0c;不要贪图便宜使用盗版软件造成不好的后果。MVBOX播放器功能介绍1、在线卡拉OK2、虚拟摄像头3、画面调色板4、摄像头抠像5、…

linux重启鼠标键盘服务,Linux 关闭服务后 鼠标 键盘用不了

大部分情况下我们做实验都是使用虚拟机&#xff0c;但是个人比较本实在太老了&#xff0c;性能有限&#xff0c;所以虚拟机里面的系统启动神慢&#xff0c;怎么办&#xff1f;把系统中自己用不到的服务全部关闭掉呗&#xff0c;如下for i in chkconfig --list | awk {print $1}…

拖拽功能-jquery

<!DOCTYPE html><html lang"en"><head> <meta charset"UTF-8"> <title>拖拽</title> <style> .nav { width: 200px; height: 200px; border: 1px solid blac…

PNG,GIF,JPG的区别及如何选

GIF&#xff1a; 1&#xff1a;256色 2&#xff1a; 无损&#xff0c;编辑 保存时候&#xff0c;不会损失。 3&#xff1a;支持简单动画。 4&#xff1a;支持boolean透明&#xff0c;也就是要么完全透明&#xff0c;要么不透明 JPEG&#xff1a; 1&#xff1a;millions o…

饿了么商家电脑版_饿了么企业版荣膺“2020中国十大影响力人力资源品牌”大奖...

11月6日&#xff0c;由MeetHR GROUP主办的2020大中华地区HRVP高峰论坛在上海落幕。饿了么企业版凭借自身产品在人力资源管理与服务方面的创新实践&#xff0c;荣获“2020 中国十大影响力人力资源品牌(薪酬福利类)”殊荣。本次评选&#xff0c;据主办方介绍&#xff0c;旨在激励…

用信号量锁定:一个例子

并发是带来有趣挑战的一个方面。 如果处理不当&#xff0c;会导致种族状况&#xff0c;这会使人们感到困惑&#xff0c;因为这些问题有时会突然出现&#xff0c;并且有时会完美无缺地发挥作用。 当处理访问公共资源的并发线程时&#xff0c;Java语言提供了许多处理竞争条件的方…

navicat连接linux远程数据库,使用Navicat forMySql远程连接Linux 系统上的数据库

使用Navicat for MySql远程连接Linux 系统上的数据库解决mysql"Access denied for userrootIP地址"问题1.问题说明&#xff1a;在MYSQL 中&#xff0c;用远程软件登陆服务器&#xff0c;有时出现&#xff1a;Access denied for user rootlocalhost出现这种问题&#…

HTTPS 通俗简介

为什么需要HTTPS 9个问题搞懂 https 来源 HTTP是明文传输的&#xff0c;也就意味着&#xff0c;介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理 等。 举个最常见的例子&#xff0c;用户登陆。用户输入账号&#xff0c;密码&am…

CSS Modules入门教程

为什么引入CSS Modules 或者可以这么说&#xff0c;CSS Modules为我们解决了什么痛点。针对以往我写网页样式的经验&#xff0c;具体来说可以归纳为以下几点&#xff1a; 全局样式冲突 过程是这样的&#xff1a;你现在有两个模块&#xff0c;分别为A、B,你可能会单独针对这两…

单点登录(一):思考

单点登录&#xff08;后文简称&#xff1a;sso&#xff09;的定义是在多个应用系统中&#xff0c;用户只需要登录一次就可以访问所有相互信任的应用系统&#xff08;摘自百度百科&#xff09;。整个流程中涉及到的角色有&#xff1a;用户。应用服务器&#xff0c;即业务系统。单…

热电偶校验仪_热电偶校验方法_热电偶的使用方法及维修经验

一、遵照仪表接线图进行准确接线通电后&#xff0c;仪表先是显示仪表的热电偶分度号&#xff0c;接着显示仪表量程范围&#xff0c;再测仪表显示设定温度&#xff0c;数显仪表显示测量温度。若仪表数码管显示不是发热体的温度&#xff0c;而显示“OVER”、“0000”或“000”等状…

linux svn checkout密码,linux的svn之checkout命令

linux的checkout命令是linux的svn的常用命令之一。下面由秋天网 Qiutian.ZqNF.Com小编为大家搜集整理了linux的svn之checkout命令的相关知识&#xff0c;希望对大家有帮助!linux的svn之checkout命令常用检出命令&#xff1a;svn co http://路径(目录或文件的全路径) [本地目录…

Java 7:满足Fork / Join框架

JSR-166&#xff08;y&#xff09;是Java 7中包含的此新功能的正式名称。如果您发现名称中有一个“ y”&#xff0c;这是因为自Java 5起就添加了JSR-166&#xff08;并发实用程序&#xff09; &#xff0c;但它不会就此停止&#xff0c;因为已经有计划在JSR-166&#xff08;e&a…

css3总结之居中

居中在前端布局上很常见&#xff0c;也很常用&#xff0c;也是最基本的技巧。居中效果在方向控制上基本可以分解成水平居中&#xff0c;垂直居中和水平垂直居中。 针对调整的元素不同&#xff0c;具体的处理方式上有些差异。这里我们先不讲绝对定位下的居中&#xff0c;绝对定位…

PHP进程及进程间通信

一、引言 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。换句话说就是&#xff0c;在系统调度多个cpu的时候&#xff0c;一个程序的基本单元。进程对于大多数的语言都不是一个陌生的概念&#xff0c;作为"世界上最好的语言PHP"当然也例外。 二、环境…