從 3.1 版開始,Eclipse 併入了 J2SE 5.0(代號 "Tiger")新特性的完整支援。 這項支援其中一個最重要的結果是, 您完全不會注意它--您預期在 J2SE 1.4 可運作的所有項目(包括編輯、編譯、除錯、快速修正、重構、程式碼動作、搜尋等等), 都能無縫地與 J2SE 5.0 的新類型與語法搭配使用。在本書中, 我們會介紹 Eclipse 使用者在使用 J2SE 5.0 時,會遇到的一些較有趣的功能。
為了開發符合 J2SE 5.0 的程式碼,您需要有 J2SE 5.0 Java Runtime Environment (JRE)。
如果您第一次啟動 Eclipse 時是使用 J2SE 5.0 JRE,則依預設會使用它。
否則,您必須利用 Java > 已安裝的 JRE 喜好設定頁面,將它登錄在 Eclipse 中。
這份文件非常簡短地介紹了 J2SE 5.0 的一些新語言特性,但並不適合作為這些特性的教學指導。 請參閱這裡,以取得詳細資訊。
如果要使用新的 J2SE 5.0 特性,您必須使用已啟用 5.0 標準層次且含有 5.0 JRE 的專案。
當在「新建 Java 專案」精靈的第一頁中選擇 5.0 JRE 時,新專案會自動符合 5.0 標準:
如需進行細部調整的控制,您可以在廣域範圍內設定工作區的編譯器標準層次(利用 Java > 編譯器喜好設定頁面),或個別設定每個專案的編譯器標準層次(從專案的快速功能表中,選擇內容 > Java 編譯器)。
標準層次不同的專案可以在工作區中並存,且彼此相依。
您也可以使用內容 > Java 編譯器 > 錯誤/警告 > J2SE 5.0 選項,
針對每一個專案進一步調整所產生之編譯器警告和錯誤的類型。
一般的類型可讓相同類別的物件安全地操作不同類型的物件。
比方說,其允許 List<String>
一律包含 String
,而 List<Integer>
一律包含 Integer
的編譯時期保證。
Eclipse 在搜尋一般的類型的參照時,提供了新的選項。 請參考以下範例:
List<Integer>
的參照並使用搜尋 > 參照 > 專案時,
會強調顯示所有這四行中的 List 類型:
過濾器不相容只會留下與選定類型的指派相容之類型的參照:
過濾器不嚴格只會留下簽章完全相同的類型參照:
註解會附加如何使用 Java 類型和方法並記錄到 java 程式檔的 Meta 資料,
之後即可影響編譯或於執行時期查詢。比方說,如果標註的方法未置換 Super 類別中的方法,則 @Override
會觸發編譯器警告:
有一個非常有用且完整支援 Eclipse 的註解是 @SuppressWarnings
。
比方說,假設有一個 Private 方法目前未使用,但您不想刪除它:
@SuppressWarnings
註解的警告提議呼叫快速修正:
foo
的警告,來接受該註解:
列舉是在執行時期,由一組已知、有限的物件所實例化的類型:
autoboxing 和 auto unboxing 可於初始類型指派給 Object 參照或從 Object 參照擷取時,產生精確的語法:
Eclipse 的程式碼操作特性會完美地處理 autoboxing,
提供正確的類型給新的區域變數和正確的程式碼輔助。
為了能夠瞭解程式碼,您也可以將 autoboxing 或 autounboxing 轉換實例標示成編譯警告(利用 Java > 編譯器 > 錯誤/警告喜好設定頁面的潛在程式設計問題區段),
或利用語法著色(透過
Java > 編輯器 > 語法著色喜好設定頁面的 Java > Auto(un)boxed 表示式區段)來強調顯示它們:
對於依序操作陣列或集合的每一個元素的一般情況而言,J2SE 5.0 可使用新的、較乾淨的語法。 Eclipse 提供了能夠自動猜測要疊代之集合的 "foreach" 程式碼範本:
另外,Eclipse 也提供了「轉換成加強型 for 迴圈」快速輔助,供您在可能的情況下,升級 1.4 樣式的 for
迴圈。