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.pswp.cn/news/370932.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370932.shtml
英文地址,請注明出處:http://en.pswp.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"當然也例外。 二、環境…