快速修正程式

Java 編輯器會提供輸入時和編譯後所發現之問題的更正方法。如果要顯示可用於解決問題或警告的更正提議,您將可在編輯器的註釋列上看到「燈泡」。

以滑鼠左鍵按一下燈泡,或呼叫 Ctrl+1(編輯 > 快速修正程式)來帶出位於游標位置之問題的提議。
在提議視窗中選取時,每一個快速修正程式都會顯示預覽。

快速修正選項對話框

快速修正程式也會直接顯示於問題浮動說明中(但這裡沒有提供預覽)。

快速修正程式浮動說明


使用提示:快速修正程式不只適用於修正意外發生的錯誤。 另一種常見的使用型樣是刻意撰寫「不正確」程式碼,例如透過參照尚未宣告的區域變數。然後,建立區域變數快速修正程式可立即產生宣告,甚至可推斷變數類型。

某些選定的快速修正程式也可以指定直接快速鍵。您可以在 開啟按鍵喜好設定頁面 一般 > 按鍵喜好設定頁面中(位於「來源」種類),配置這些快速鍵。

某些快速修正程式可供您同時修正現行檔案中所有相同類型的問題。提議視窗中的資訊文字包含所有適用提議的這項資訊。如果要修正所有相同類型的問題,請按 Ctrl + Enter

以下是可用快速修正程式的選項:

套件宣告
  • 新增遺漏的套件宣告或正確的套件宣告
  • 將編譯單元移至對應於套件宣告的套件
匯入
  • 移除未用、無法解析或看不到的匯入
  • 於匯入發生問題時呼叫「組織匯入項目」
類型
  • 建立新的類別、介面、列舉、註釋或類型變數,作為無法解析之類型的參照
  • 變更已存取但看不到之類型的可見性
  • 重新命名為類似的類型,以參照無法解析的類型
  • 新增無法解析但存在於專案的類型 import 陳述式類型
  • 新增明確的 import 陳述式給意義不清的類型參照(有兩個同類型的 import-on-demand)
  • 如果類型名稱與編譯單元名稱不符,請將類型或編譯單元重新命名
  • 移除未用的 private 類型
  • 新增遺漏的類型註釋屬性
建構子
  • 建立新的建構子以參照無法解析的建構子(this、super 或 new 類別建立)
  • 重新排序、新增或移除與參數不符之建構子參照的引數
  • 將具有建構子名稱的方法變更為建構子(移除傳回類型)
  • 變更已存取但看不到之建構子的可見性
  • 移除未用的 private 建構子
  • 當隱含的預設建構子的 super 呼叫未加以定義、看不到或擲出異常狀況時,就會建立建構子
  • 如果類型含有未實作的方法,請將類型修飾元變更為 'abstract',或新增要實作的方法
方法
  • 建立新方法以參照無法解析的方法
  • 重新命名為類似的方法,以參照無法解析的方法
  • 重新排序或移除使參數不符之方法參照的引數
  • 更正參照方法的存取權(可見性、static)
  • 移除未用的 private 方法
  • 更正有遺漏傳回類型或其傳回類型不符 return 陳述式之方法的傳回類型
  • 如果遺漏的話,新增 return 陳述式
  • 對於沒有內文之非 abstract 方法,變更為 'abstract' 或新增內文
  • 對於非 abstract 類型中的 abstract 方法,請移除方法的 abstract 修飾元,或使類型成為 abstract
  • 對於具有內文的 abstract/native 方法,請移除 abstract 或 native 修飾元,或移除內文
  • 如果是在建構子呼叫內呼叫方法 (super, this),請將方法存取權變更為 'static',
  • 將方法存取權變更為預設存取權以避免模擬的方法存取權
  • 新增 'synchronized' 修飾元
  • 置換 hashCode()
  • 開啟「產生 hashCode() 和 equals()」精靈
欄位和變數
  • 更正參照欄位的存取權(可見性、static)
  • 建立新的欄位、參數、區域變數或常數,作為無法解析之變數的參照
  • 重新命名為一個具有無法解析之參照的類似名稱的變數
  • 移除未用的 private 欄位
  • 更正 static 欄位的非 Static 存取權
  • 新增 'final' 修飾元至已在外部類型中存取的區域變數
  • 將欄位存取權變更為預設存取權,以避免模擬的方法存取權
  • 變更區域變數類型以修正類型不符的情況
  • 起始設定未起始設定的變數
  • 針對隱藏或未用的欄位建立 getter 和 setter
  • 建立迴圈變數,透過新增迴圈變數的類型來更正不完整的加強型 'for' 迴圈
異常狀況處理
  • 移除不需要的 catch 區塊
  • 從 multi-catch 子句移除不需要的異常狀況(1.7 或更新版本)
  • 藉由以 try/catch 包覆或新增 catch 區塊至包覆的 try 區塊,來處理未捕捉到的異常狀況
  • 藉由以 try/multi-catch 圍住或新增異常狀況至現有的 catch 子句,來處理未捕捉到的異常狀況(1.7 或更新版本)
  • 藉由新增擲出宣告至母項方法,或將現有的擲出宣告一般化,來處理未捕捉到的異常狀況
建置路徑問題
  • 針對無法解析的類型新增遺漏的 JAR 或程式庫
  • 針對存取限制問題或遺漏二進位類別,開啟建置路徑對話框。
  • 變更專案標準和 JRE 至 1.5
  • 變更工作區標準和 JRE 至 1.5
其他
  • 新增強制轉型或變更強制轉型以修正類型不符的情況
  • 讓類型實作介面以修正類型不符的問題
  • 將類型引數新增至原始參照
  • 透過列舉完成 switch 陳述式
  • 移除停用碼
  • 插入 '//$FALL-THROUGH$'
  • 插入空值檢查
  • 對於非 NLS 字串,開啟 NLS 精靈或標示為非 NLS
  • 加入遺漏的 @Override、@Deprecated 註釋
  • 新增遺漏的 Javadoc 註解
  • 新增遺漏的 Javadoc 標籤
  • 使用 @SuppressWarnings 暫停警告
  • 擲出配置的物件
  • 傳回配置的物件
  • 針對資料堆污染警告新增 @SafeVarargs 註釋(1.7 或更新版本)
  • 移除無效的 @SafeVarargs 註釋(1.7 或更新版本)
  • 移除冗餘的類型引數(1.7 或更新版本)
  • 新增推斷類型引數(1.5 和 1.6)
  • 移除未用的類型參數(1.5 或更新版本)

即使沒有問題或警告,您仍然可以使用「快速輔助」的提議。如需相關資訊,請參閱快速輔助頁面。

相關概念

Java 編輯器
快速修正程式與輔助

相關參照

快速輔助
JDT 動作