請在 Java > 編譯器 > 錯誤/警告喜好設定頁面中,指出「錯誤/警告」設定的喜好設定。
選項 |
說明 |
預設值 |
---|---|---|
Static 成員的非 Static 存取 |
當啟用時,每當以表示式接收器存取 Static 欄位或方法時,編譯器將發出錯誤或警告。 應該以類型名稱限定 Static 成員的參照。 |
警告 |
Static 成員的間接存取 |
如果啟用,編譯器會在間接存取 static 欄位或方法時,發出錯誤或警告。介面的 static 欄位應該以宣告類型名稱定義。 |
忽略 |
實例欄位的不完整存取 |
如果啟用,編譯器會在發現不完整的欄位存取(例如:遺漏 'this')時,發出錯誤或警告。 |
忽略 |
未記載的空區塊 |
如果啟用,編譯器會在發現不含解說註解的空區塊陳述式時,發出錯誤或警告。 |
忽略 |
存取含括類型的不可存取成員 |
當啟用時, 只要其模擬存取含括類型中無法存取的成員, 編譯器即會發出錯誤或警告。這類存取可能涉及效能。 |
忽略 |
含建構子名稱的方法 |
如果以建構子名稱來命名方法,通常會被視為較差的程式設計風格。 當啟用這個選項時, 編譯器會將這類情況標為錯誤或警告。 |
警告 |
參數指派 |
指派參數值通常都被視為不好的程式設計風格。 當啟用這個選項時, 編譯器會將這類情況標為錯誤或警告。 |
忽略 |
未提出的字串 |
當啟用時,編譯器會針對未提出的 String 文字(也就是不含 //$NON-NLS-<n>$ 標示)或不屬於 String 的未提出之 String 標示,發出一則錯誤或警告。 |
忽略 |
不含 serialVersionUID 的可序列化類別 |
如果啟用,編譯器會在實作 'java.io.Serializable' 的類型不含 serialVersionUID 欄位時,發出錯誤或警告。 |
警告 |
指派沒有影響(例如:'x = x') |
如果啟用,編譯器會在指派沒有影響(例如:'x = x')時,發出錯誤或警告。 |
警告 |
可能的意外 Boolean 指派(例如:'if (a = b)') |
當啟用時,每當編譯器發現可能意外指派了 Boolean(如 'if (a = b)'),它都會發出錯誤或警告。 |
忽略 |
'finally' 未正常完成 |
如果啟用,編譯器會在 'finally' 陳述式未正常完成(例如:包含 return 陳述式)時,發出錯誤或警告。 |
警告 |
空的陳述式 |
如果啟用,編譯器會在發現空的陳述式(例如:過多的分號)時,發出錯誤或警告。 |
忽略 |
在字串連接中使用 char 陣列 |
當啟用時,每當在下列「字串」連結中使用 char[] 表示式時,編譯器就會發出錯誤或警告: "hello" + new char[]{'w','o','r','l','d'} |
警告 |
隱藏 catch 區塊 |
對本端環境的 try 陳述式而言,某些 catch 區塊可能會隱藏其他區塊,例如: try { throw new java.io.CharConversionException(); } catch (java.io.CharConversionException e) { } catch (java.io.IOException e) {}. 當啟用這個選項時, 編譯器會針對對應至所檢查之異常狀況的快取區塊隱藏, 發出錯誤或警告。 |
警告 |
vararg 引數不嚴格的類型比對 |
如果啟用,編譯器會在發現 vararg 引數不嚴格的類型比對時,發出錯誤或警告。 |
警告 |
boxing 和 unboxing 轉換 |
如果啟用,編譯器會在發現 boxing 或 unboxing 轉換時,發出錯誤或警告。autoboxing 對效能可能會有負面影響。 |
忽略 |
'switch' 未涵蓋列舉類型常數 |
如果啟用,編譯器會在發現 switch 陳述式不含參照列舉之每一個 enum 常數的 case 陳述式時,發出錯誤或警告。 |
忽略 |
'switch' 案例失敗 |
如果啟用,每當編譯器發現 switch 案例沒有 'break' 陳述式時,它都會發出錯誤或警告。 switch 案例可以是空的。 |
忽略 |
空值參照 |
如果啟用,當編譯器發現解除參照可能是空值的區域變數時,它都會發出錯誤或警告。 請注意,這項分析非常保守,它只會考量有可疑情況的案例。 |
忽略 |
欄位宣告隱藏另一個欄位或變數 |
如果啟用這個選項,當欄位宣告隱藏另一個繼承的欄位時,編譯器會發出錯誤或警告。 |
忽略 |
區域變數宣告隱藏另一個欄位或變數 |
如果啟用這個選項,當區域變數宣告隱藏另一個欄位或變數時,編譯器會發出錯誤或警告。 |
忽略 |
包括建構子或 setter 方法參數 |
如果啟用這個選項,當建構子或 setter 方法參數隱藏另一個欄位或變數時,編譯器會另外發出錯誤或警告。 |
關閉 |
類型參數隱藏另一個類型 |
如果啟用這個選項,比方說,當內部類別的類型參數隱藏外部類型時,編譯器會發出錯誤或警告。 |
警告 |
已置換方法但看不到套件 |
套件的預設方法在另一套件中看不到, 因此無法置換。當啟用這個選項時, 編譯器會將這類情況標為錯誤或警告。 |
警告 |
介面方法與受保護的 'Object' 方法衝突 |
當啟用時,每當介面定義一個與非繼承「物件」方法不相容的方法時, 編譯器將發出錯誤或警告。在解決這個衝突之前,將無法實作這類介面,例如: interface I { int clone(); } |
警告 |
已棄用的 API |
當啟用這個選項時, 編譯器將使用已棄用的 API 標為錯誤或警告。 |
警告 |
通知使用已棄用之程式碼內已棄用的 API |
一旦啟用,編譯器將發出信號,指出在已停用的程式碼內使用已停用的 API。 問題的嚴重性是由「已棄用的 API」選項來控制。 |
關閉 |
通知置換或實作已棄用的方法 |
如果啟用,編譯器會通知置換或實作已棄用的方法。 問題的嚴重性是由「已棄用的 API」選項來控制。 |
關閉 |
禁止的參照(存取規則) |
如果啟用,編譯器會通知存取規則中指定了禁止的參照。 |
錯誤 |
不建議的參照(存取規則) |
如果啟用,編譯器會通知存取規則中指定了不建議的參照。 |
警告 |
從未讀取區域變數 |
如果啟用,每當宣告了區域變數,但不曾在變數範圍內使用這個變數時,編譯器會發出錯誤或警告。 |
警告 |
從未讀取參數 |
如果啟用,每當宣告了參數,但不曾在其範圍內使用這個參數時,編譯器會發出錯誤或警告。 |
忽略 |
檢查置換和實作方法 |
如果啟用,每當宣告了參數,但不曾在範圍內利用這個參數來置換或實作方法時,編譯器會另外發出錯誤或警告。 |
關閉 |
匯入未使用 |
當啟用時, 編譯器會針對未用的匯入參照, 發出錯誤或警告。 |
警告 |
未使用的區域或私密成員 |
如果啟用,編譯器會在宣告了區域或私密成員,但從未在同一個單元內使用時,發出錯誤或警告。 |
警告 |
不必要的 else 陳述式 |
如果啟用,編譯器會在發現不必要的 else 陳述式(例如:if (condition) return; else doSomething();)時,發出錯誤或警告。 |
忽略 |
不必要的 cast 或 'instanceof' 作業 |
如果啟用,編譯器會在發現不必要的 cast 或 'instanceof' 作業(例如:if (object instanceof Object) return;)時,發出錯誤或警告。 |
忽略 |
不必要的擲出檢查異常狀況宣告 |
如果啟用,編譯器會在發現不必要的擲出異常狀況宣告時,發出錯誤或警告。 |
忽略 |
檢查置換和實作方法 |
如果啟用,編譯器會在置換或實作方法中發現不必要的擲出異常狀況宣告時,另外發出錯誤或警告。 |
關閉 |
未用的 break/continue 標籤 |
如果啟用,每當編譯器發現未用的 'break' 或 'continue' 標籤時,它都會發出錯誤或警告。 |
警告 |
未檢查的一般的類型作業 |
如果啟用,編譯器會在發現未檢查的一般的類型作業時,發出錯誤或警告。 |
警告 |
使用原始類型 |
如果啟用,每當編譯器發現使用原始類型(例如,使用 List,而不是 List<String>)時,它都會發出錯誤或警告。 |
忽略 |
以 final 類型界限宣告的一般的類型參數 |
如果啟用,編譯器會在發現用到 final 類型的類型界限時,發出錯誤或警告。 |
警告 |
遺漏 '@Override' 註解 |
如果啟用,編譯器會在發現方法置換了另一個實作的方法且遺漏 '@Override' 註解時,發出錯誤或警告。 |
忽略 |
遺漏 '@Deprecated' 註解 |
如果啟用,編譯器會在發現已棄用的類型但沒有其他 '@Deprecated' 註解時,發出錯誤或警告。 |
忽略 |
註解用來作為超介面 |
如果啟用,編譯器會在發現類型實作了註解時,發出錯誤或警告。雖然可用,但這是不佳的做法。 |
警告 |
'@SuppressWarnings' 中有未處理的 warning 記號 |
如果啟用,編譯器會在發現 '@SuppressWarnings' 註解中有未處理的 warning 記號時,發出錯誤或警告。 |
警告 |
啟用 '@SuppressWarnings' 註解 |
如果啟用,編譯器會處理 '@SuppressWarnings' 註解。 |
開啟 |