這個喜好設定頁面可讓您配置與編譯、建置以及檢查 Java 程式碼相關的各種設定。
「Java 編譯器」喜好設定分成以下各段:
選項 |
說明 |
預設值 |
---|---|---|
編譯器標準層次 |
指定編譯器標準層次。 |
1.4 |
使用預設標準設定 |
當啟用時,在編譯器的相容層次方面,會套用預設的相容設定。 |
開啟 |
產生的類別檔相容性 |
指定所產生的類別檔相容性。 |
1.2 |
程式碼相容性 |
指定已接受之程式碼的相容性。 |
1.3 |
不接受名稱為 'assert' 的 ID |
如果啟用,只要使用 'assert'(J2SE 1.4 中的保留關鍵字)作為 ID,編譯器即會發出錯誤或警告。 |
警告 |
不接受名稱為 'enum' 的 ID |
如果啟用,只要使用 'enum'(J2SE 5.0 中的保留關鍵字)作為 ID,編譯器即會發出錯誤或警告。 |
警告 |
新增變數屬性到產生的類別檔中 |
當啟用時,會在類別檔中新增變數屬性。這會讓區域變數名稱顯示在除錯器中(位於明確指定變數之處)。 產生的 .class 檔會變大。 |
開啟 |
新增行號屬性到產生的類別檔中 |
當啟用時,會在類別檔中新增行號資訊。這會在除錯器中強調顯示出程式碼。 |
開啟 |
新增程式檔名稱到產生的類別檔中 |
當啟用時,會在類別檔中新增程式檔名稱。這會讓除錯器顯示對應的程式碼。 |
開啟 |
保留未使用的區域變數 |
當啟用時,則不會將未用的區域變數(亦即,從未讀取)從類別檔中除去。如果除去這項,有可能會改變除錯。 |
開啟 |
列入 finally 區塊 |
如果啟用,finally 區塊會列入產生的類別檔中。這對效能有正面的影響,但可能會產生較大的類別檔。 |
關閉 |
選項 |
說明 |
預設值 |
---|---|---|
每一編譯單元報告的問題數上限 |
指定一個編譯單元應報告的問題數。 |
100 |
啟用在來源資料夾中使用排除型樣 |
當停用時,專案類別路徑上沒有項目可與排除型樣相關聯。 |
開啟 |
啟用對來源資料夾使用多個輸出位置 |
當停用時,專案類別路徑上沒有項目可與特定輸出位置相關聯,因而防止使用多個輸出位置。 |
開啟 |
於建置路徑錯誤時中止建置 |
容許如果類別路徑無效,將建置器切換至中止。 |
開啟 |
不完整的建置路徑 |
指出當類別路徑上的項目不存在、不合規定或看不見(如關閉了參照專案)時,所報告的問題的嚴重性。 |
錯誤 |
循環相依關係 |
指出在循環中併入專案時所報告的問題的嚴重性。 |
錯誤 |
不相容的必要二進位檔 |
指出當專案需要不相容的二進位檔時,所報告的問題嚴重性。 |
忽略 |
重複的資源 |
指出當多次出現的資源將複製到輸出位置時所報告的問題的嚴重性。 |
警告 |
清除專案時清除輸出資料夾 |
指出是否容許「Java 建置器」在執行完整建置作業時清除輸出資料夾。 |
開啟 |
過濾的資源 |
以逗點分格方式列出不複製到輸出資料夾中的檔案型樣。 |
'' |
選項 |
說明 |
預設值 |
---|---|---|
Static 成員的非 Static 存取 |
當啟用時,每當以表示式接收器存取 Static 欄位或方法時,編譯器將發出錯誤或警告。Static 成員的參照應該以類型名稱定義。 |
警告 |
Static 成員的間接存取 |
如果啟用,編譯器會在間接存取 static 欄位或方法時,發出錯誤或警告。介面的 static 欄位應該以宣告類型名稱定義。 |
警告 |
實例欄位的不完整存取 |
如果啟用,編譯器會在發現不完整的欄位存取(例如:遺漏 'this')時,發出錯誤或警告。 |
忽略 |
未記載的空區塊 |
如果啟用,編譯器會在發現不含解說註解的空區塊陳述式時,發出錯誤或警告。 |
忽略 |
存取含括類型的不可存取成員 |
當啟用時, 只要其模擬存取含括類型中無法存取的成員, 編譯器即會發出錯誤或警告。這類存取可能涉及效能。 |
忽略 |
具有建構子名稱的方法 |
如果以建構子名稱來命名方法,通常會被視為較差的程式設計風格。 當啟用這個選項時, 編譯器會將這類情況標為錯誤或警告。 |
警告 |
使用未提出的字串 |
當啟用時,編譯器將為未提出的字串文字發出錯誤或警告(如,未標示的 //$NON-NLS-<n>$)。 |
忽略 |
不含 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) {}. 當啟用這個選項時, 編譯器會針對對應至所檢查之異常狀況的快取區塊隱藏, 發出錯誤或警告。 |
警告 |
欄位宣告隱藏另一個欄位或變數 |
如果啟用這個選項,當欄位宣告隱藏另一個繼承的欄位時,編譯器會發出錯誤或警告。 |
忽略 |
區域變數宣告隱藏另一個欄位或變數 |
如果啟用這個選項,當區域變數宣告隱藏另一個欄位或變數時,編譯器會發出錯誤或警告。 |
忽略 |
包括建構子或 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;)時,發出錯誤或警告。 |
忽略 |
不必要的擲出檢查異常狀況宣告 |
如果啟用,編譯器會在發現不必要的擲出異常狀況宣告時,發出錯誤或警告。 |
忽略 |
檢查置換和實作方法 |
如果啟用,編譯器會在置換或實作方法中發現不必要的擲出異常狀況宣告時,另外發出錯誤或警告。 |
關閉 |
未檢查的通用類型作業 |
如果啟用,編譯器會在發現未檢查的通用類型作業時,發出錯誤或警告。 |
警告 |
以 final 類型界限宣告的通用類型參數 |
如果啟用,編譯器會在發現用到 final 類型的類型界限時,發出錯誤或警告。 |
警告 |
vararg 引數不嚴格的類型比對 |
如果啟用,編譯器會在發現 vararg 引數不嚴格的類型比對時,發出錯誤或警告。 |
警告 |
boxing 和 unboxing 轉換 |
如果啟用,編譯器會在發現 boxing 或 unboxing 轉換時,發出錯誤或警告。autoboxing 對效能可能會有負面影響。 |
忽略 |
遺漏 '@Override' 註釋 |
如果啟用,編譯器會在發現方法置換了另一個實作的方法且遺漏 '@Override' 註釋時,發出錯誤或警告。 |
忽略 |
遺漏 '@Deprecated' 註釋 |
如果啟用,編譯器會在發現已棄用的類型但沒有其他 '@Deprecated' 註釋時,發出錯誤或警告。 |
忽略 |
註釋用來作為超介面 |
如果啟用,編譯器會在發現類型實作了註釋時,發出錯誤或警告。雖然可用,但這是不佳的做法。 |
警告 |
'switch' 未涵蓋所有 enum 常數 |
如果啟用,編譯器會在發現 switch 陳述式不含參照列舉之每一個 enum 常數的 case 陳述式時,發出錯誤或警告。 |
忽略 |
'@SuppressWarnings' 中有未處理的 warning 記號 |
如果啟用,編譯器會在發現 '@SuppressWarnings' 註釋中有未處理的 warning 記號時,發出錯誤或警告。 |
警告 |
啟用 '@SuppressWarnings' 註釋 |
如果啟用,編譯器會處理 '@SuppressWarnings' 註釋。 |
開啟 |