- 可疑方法調用
- 使用==或!= 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