現代化Java代碼的七個NetBeans提示

在“ 七個不可或缺的NetBeans Java提示”一文中 ,我談到了一般使用NetBeans提示的問題,然后重點介紹了七個提示。 接下來列出了該帖子中強調的七個提示:
  • 可疑方法調用
  • 使用==或!= AND字符串構造函數比較字符串
  • 構造函數中的可重寫方法調用
  • .equals不兼容類型
  • ResultSet中的列索引不正確
  • 與instanceof不兼容
  • 生成.equals或.hashCode方法

在本文中,我著眼于一組不同的七個NetBeans提示,這些提示可能不像第一組那樣“不可或缺”,但是我發現它們對于移動現有代碼和我自己的用Java編寫代碼的心態非常有用。進入JDK 7時代。NetBeans6.9開始引入了許多新提示 ,我非常喜歡這些提示 ,以便逐步改進JDK 7的性能和安全性。

建議EnumMap和EnumSet

NetBeans 6.9在“性能”類別中引入的兩個提示是“可被EnumMap替換的地圖”(在NetBeans Java提示中描述為“可被EnumMap替換的地圖的實例化”)和“設置可被EnumSet替換”。 (描述為“查找可以用EnumSet替換的Set的實例化”)。 關于使用EnumMap和EnumSet的優點,我之前已經發布過 ,因此在使用現有代碼時,我發現它們是兩個非常有用的提示。 盡管從J2SE 5開始 , Enum以及關聯的EnumMap和EnumSet都已存在,但是可能存在一些未使用它們的代碼庫,因為代碼較舊,或者因為開發人員在創建其地圖或集合時沒有想到它們。

下一系列快照以靜態方式演示了這些提示如何識別EnumSet和EnumMap可能更有效的潛在情況。 第一張圖片顯示了使用EnumSet的提示示例。 第二到第四幅圖像演示了使用EnumMap的提示以及選擇要應用EnumMap的操作以及該操作的結果。

JDK 7升級提示

NetBeans 7.x在提示的“ JDK 1.5及更高版本”類別中提供了一些與Java 7語法和語言支持有關的提示。 這些提示提供了更多有關NetBeans提示可以幫助將現有Java代碼庫帶入JDK的最新版本的示例。 這里要注意的一件事是,只有與NetBeans項目關聯的源版本是JDK 7(1.7)時,NetBeans才會識別這些提示。

與JDK 7相關的兩個NetBeans提示與捕獲異常有關。 “使用多捕獲來加入捕獲部分”提示(“使用多捕獲來結合捕獲部分”)和“使用特定捕獲”提示(“將捕獲(可拋出)或捕獲(異常)轉換為多捕獲以捕獲由try主體拋出的異常”。 ”)是在NetBeans 7.0中引入的。

后面的三個屏幕快照顯示了一個非常復雜的代碼段,該段代碼確實演示了“使用多重捕獲加入捕獲”部分。 這三個圖像顯示了提示的顯示,選擇應用提示以及應用提示的結果。

NetBeans中與JDK 7相關的另一個異常處理提示是“使用特定的捕獲提示”。 捕獲比Exception (或更普通的Throwable )更具體的異常的想法在JDK 7中并不陌生,但這是一個依賴于JDK 7的提示,因為它在執行JDK 7 multicatch時會放置多個特定的已檢查異常 。轉換。 實際上,如果只有一個已知的已檢查異常比Exception或Throwable更具體,則提示不適用。 出于明顯的原因(畢竟不檢查!),不會考慮運行時異常( 未檢查的異常 ),并且只有try子句中存在多個檢查的異常才會導致此提示。

以下屏幕快照描述了所有這些。 第一個屏幕快照描述了出現的提示,因為try塊中可能有兩個已檢查的異常。 第二張圖片證明,一個已檢查的異常的存在不足以使提示出現(其中一個已被注釋掉)。 第三幅圖顯示了再次適用的已檢查異常以及如何選擇要執行的操作。 第四幅圖描繪了接受提示的建議操作的結果:將常規Exception更改為具有可能遇到的兩個特定已檢查異常的多重捕獲。

NetBeans 6.9引入了“盡可能使用字符串轉換”。 提示(“標記可轉換為切換字符串的ifs級聯。”)。 這使開發人員可以更輕松地識別基于String的一系列條件,可以將其重構為使用JDK 7 對Strings的支持。 接下來的三個屏幕快照演示了此提示的提供,應用提示的能力以及應用提示的結果。

JDK 7引入了菱形語法,以更簡潔地使用泛型。 NetBeans 7.1引入了提示“可以使用鉆石”(被描述為“關于可以在JDK 7中使用鉆石運算符代替顯式類型參數的位置的警告”),以幫助遷移代碼以使用這種更簡潔的語法。 接下來的三個屏幕快照顯示了提示的顯示方式,單擊提示可以執行的操作以及執行該操作的結果。

NetBeans 7.0引入的“轉換為嘗試資源”提示(“將最終轉換為嘗試轉換為資源”)提示幫助開發人員確定使用新的嘗試資源的便捷安全方法可以解決的情況被應用。

接下來的四個圖像描述了NetBeans中“轉換為嘗試資源”提示的用法。 第一個屏幕快照顯示,如果首先在有條件的非空狀態下檢查資源,則不會出現提示。 第二張圖顯示,刪除資源上的條件會導致出現提示。 第三個屏幕快照顯示了提示以應用與提示關聯的操作,第四個圖像顯示了應用提示的結果。 這些快照中的示例改編自Java教程頁面try-with-resources Statement中提供的示例。 NetBeans將該教程中提供的try-finally(在這種情況下為catch)示例轉換為該教程中所示的try-with-resources示例。

升級到NetBeans 7.1,以獲得最新和最佳的提示支持

我將NetBeans 7.1和NetBeans 7.1.1用于本文中顯示的屏幕快照。 盡管這里沒有介紹,但NetBeans 7.1的一個有趣的提示相關功能是創建自定義提示的功能 。

結論

這篇博客文章涵蓋了七個NetBeans提示,可幫助開發人員利用Java的新功能(特別是JDK 7)。 啟用這些提示(包括將NetBeans項目與JDK 7關聯)使開發人員能夠快速識別可以在將編譯器升級到JDK 7時進行現代化處理的舊代碼段,還可以幫助開發人員學習使用這些新的構造和功能編寫新代碼。 。 這篇文章涵蓋的提示是:

  • 地圖可替換為EnumMap
  • 設置可替換為EnumSet
  • 使用多重捕捉加入捕捉部分
  • 使用特定的漁獲
  • 盡可能使用切換字符串
  • 可以使用鉆石
  • 轉換為嘗試資源

參考:來自JCG合作伙伴 Dustin Marx在Inspired by Actual Events博客上的七個Java現代化NetBeans提示 。


翻譯自: https://www.javacodegeeks.com/2012/04/seven-netbeans-hints-for-modernizing.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373607.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373607.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373607.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AngularJS $http service

原文鏈接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/angularjs-http-service/ 1.通常用法: $http服務是一個只有一個參數-配置對象的函數,用于產生一個http請求并返回一個promise對象。 $http({ method: GET, url: /someUr…

Erwin 生成 mysql 帶注釋(comment )的腳本

Erwin設計數據庫非常方便,有邏輯視圖和物理視圖,可以很方便的生成數據庫文檔和SQL 腳本。在使用過程中唯一不爽的地方是腳本不能生成comment。在百度無數次無法解決下,又翻墻谷歌,在一個日本網站找到了解決辦法,不敢獨…

YY語音01

1、YYSetup-8.2.0.1-zh-CN.exe (http://waiwai.duowan.com/)(http://www.yy.com/download) C:\Program Files (x86)\duowan\yy 1.1、YY游戲大廳,指向的安目錄:“C:\Users\33\AppData\Roaming\duowan\yygame\ver\0\1.3.1.13\” 2、 3、 4、 5、轉載于:htt…

手機屏幕寬高像素計算_2020年的智能手機拍照新設計,就全看下半年了

此前我們三易生活在總結2019年智能手機影像設計的變化時曾經提到,智能手機上的大底與大像素設計幾乎是花了一整年的時間,把自己從單純的噱頭,逐步改進成了能夠確實提高拍照畫質的業界主流技術。站在現在的視角來看,2019年這陣“高…

帶有Jersey和Spring的RESTful Web應用程序

幾個月前,我們的任務是創建一個API,以向第三方開發人員公開我們系統中的某些功能。 我們選擇將這些功能公開為一系列REST Web服務。 我開始使用Jersey ,它是JSR 311 (用于Restful Services的Java API)的參考實現&#…

關于更新pip的心得

如果pip install --upgrade pip 刪除了自己,但是無法安裝新的自己。 那么下載最新的pip,解壓 1、在命令窗口輸入 python(前提條件已經在系統路徑) setup.py(pip 包里的腳本) install 即可 2、注銷一下,讓pip在系統路徑生效 3、打開cmd,輸…

Linux/Unix/Mac 系統GIT密碼存儲

新建一個 ~/.netrc 文件, 將 git 服務器, 用戶名以及密碼記錄在這個文件, 如下所示: machine your-git-server login your-username password your-password普通用戶的 git-server 填 github.com 就可以了. 如果有多個 server 就…

財務部門:你需要多長時間才能夠回答老板的這些問題?

企業經營管理中,對管理決策者來說,有許多問題是希望隨時都知道的,下面,我們一起來探討一下,這些常見的問題,我們怎么來快速回答。首先,我們來回答以下幾個問題:注:這幾個…

yield方法釋放鎖嗎_死磕Synchronized底層實現重量級鎖

點擊上方“Java知音”,選擇“置頂公眾號”技術文章第一時間送達!作者:farmerjohngit鏈接:https://github.com/farmerjohngit本文為死磕Synchronized底層實現第四篇文章,內容為重量級鎖實現。本系列文章將對HotSpot的sy…

Java應用程序上的Twitter API

是否曾想過將推文附加到Java應用程序? 我為此尋找了最好的API,很幸運,我找到了它! http://twitter4j.org/ 一個簡單的方法: 我們需要做的第一件事是在您的Twitter帳戶中創建一個應用程序,為其授予訪問權限…

ps aux和ps -ef命令區別

ps aux 是用BSD的格式來顯示 java這個進程顯示的項目有:USER,PID,%CPU,%MEM,VSZ,RSS,TTY,STAT,START,TIME,COMMANDps -ef 是用標準的格式顯示java這個進程顯示的項目有:UID,PID,PPID,C,STIME,TTY,TIME,CMD)轉載于:https://www.cnblogs.com/ya…

gulp學習筆記3

gulp系列學習筆記: 1、gulp學習筆記1 2、gulp學習筆記2 3、gulp學習筆記3 4、gulp學習筆記4 1、編譯sass Sass 是一種 CSS 的開發工具,提供了許多便利的寫法,大大節省了開發者的時間,使得 CSS 的開發,變得簡單和可維護…

MongoDB學習1——Windows 下配置及啟動mongodb服務器

1.下載mongodb程序:http://lt1.cr173.com/soft2/mongodb.zip 2.解壓程序3.在解壓后的mongodb文件夾中創建 data、logs、conf文件夾4.編寫配置文件conf\mongod.conf#端口號 port 12345 #數據庫路徑,也可以使用絕對路徑 dbpath data #日志路徑&#xff0…

JavaFX 2.0條形圖和散點圖(以及JavaFX 2.1 StackedBarCharts)

JavaFX 2.0提供了用于生成圖表的內置功能,該功能可在javafx.scene.chart包中找到。 在本文中,我將介紹如何使用JavaFX 2.0創建條形圖和散點圖 。 在本文的學習過程中,我將一路使用Guava和一些Java 7功能。 在演示JavaFX 2.0圖表API之前&#…

python中下劃線開頭的命名_Python 中各種下劃線的騷操作:_、_xx、xx_、__xx、__xx__、_classname_...

我們在定義一些變量或者方法的時候,常常會用到下劃線,在 Python 中,下劃線可是很有用處的喲,比如變量,有些是一個下劃線開頭的(_xx),有些是兩個下劃線開頭的(__xx),有些是在名稱的結尾添加下劃線…

MongoDB學習2——Windows 使用mongo連接數據庫

一、查看mongo幫助文檔mongo.exe --help二、使用mongo 連接服務器mongo.exe 數據庫地址:數據庫端口號/數據庫關閉服務器db.shutdownServer()注:關閉數據必須使用admin數據庫權限

【UVA 10816】 Travel in Desert (最小瓶頸樹+最短路)

【題意】 有n個綠洲, m條道路,每條路上有一個溫度,和一個路程長度,從綠洲s到綠洲t,求一條道路的最高溫度盡量小, 如果有多條, 選一條總路程最短的。 InputInput consists of several test cases…

[OJ] Data Stream Median (Hard)

LintCode 81. Data Stream Median (Hard) 思路: 用一個大根堆保存較小的一半數, 一個小根堆保存較大的一半數.每次根據num和兩個堆頂的數據決定往哪個堆里面放.放完后進行平衡確保兩個堆的size差不超過1.利用兩個堆的size和堆頂值計算median.大根堆可以表示為priority_queue<…

書評:JBoss AS 7:配置,部署和管理

我熱切地接受Packt Publishing邀請復審JBoss AS 7&#xff1a;配置&#xff0c;部署和管理&#xff0c;因為自從我上次使用JBoss已有數年了&#xff0c;我很想了解有關JBoss AS 7的更多信息。 我已經寫過關于《 JBoss AS 7配置&#xff0c;部署和管理》一書的第一印象&#xff…

聯想小新air14筆記本黑屏_聯想小新air14銳龍版測評,談談它的好和壞

聯想小新air14銳龍版本測評了解數碼就找小俠客&#xff0c;我是機圈小俠客 今天呢&#xff0c;主要和大家測評一下聯想小新air14這款筆記本&#xff0c;總體而言的話&#xff0c;這款筆記本它是一個。對于辦公人士或者輕度游戲愛好者來說的話&#xff0c;是一個不錯的選擇&…