開始使用 Eclipse 和 J2SE 5.0

從 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,則依預設會使用它。 否則,您必須利用 開啟「已安裝的 JRE」喜好設定頁面Java > 已安裝的 JRE 喜好設定頁面,將它登錄在 Eclipse 中。

這份文件非常簡短地介紹了 J2SE 5.0 的一些新語言特性,但並不適合作為這些特性的教學指導。 請參閱這裡,以取得詳細資訊。

編譯器標準層次

如果要使用新的 J2SE 5.0 特性,您必須使用已啟用 5.0 標準層次且含有 5.0 JRE 的專案。 當在開啟新建 Java 專案精靈「新建 Java 專案」精靈的第一頁中選擇 5.0 JRE 時,新專案會自動符合 5.0 標準:

「新建專案」精靈

若要將現有的 J2SE 1.4 專案轉換成 J2SE 5.0,您只要:
  1. 確定已安裝 J2SE 5.0 JRE。
  2. 在程式碼中開始使用 5.0 特性。
  3. 如果標出編譯器錯誤,利用「快速修正」來更新專案的標準層次:

    啟用 J2SE 5.0 的快速修正

如需進行細部調整的控制,您可以在廣域範圍內設定工作區的編譯器標準層次(利用 開啟 Java 編譯器喜好設定頁面Java > 編譯器喜好設定頁面),或個別設定每個專案的編譯器標準層次(從專案的快速功能表中,選擇內容 > Java 編譯器)。 標準層次不同的專案可以在工作區中並存,且彼此相依。 您也可以使用內容 > Java 編譯器 > 錯誤/警告 > J2SE 5.0 選項, 針對每一個專案進一步調整所產生之編譯器警告和錯誤的類型。

一般的類型

一般的類型可讓相同類別的物件安全地操作不同類型的物件。 比方說,其允許 List<String> 一律包含 String,而 List<Integer> 一律包含 Integer 的編譯時期保證。

只要是 Eclipse 處理非一般的類型的位置,即可處理一般的類型: 此外還增加了新的重構:推斷一般的類型引數可推斷類別、套件或整個專案中每一個類型參照的類型參數:

呼叫推斷一般的類型引數

呼叫重構會產生:

呼叫的推斷一般的類型引數

Eclipse 在搜尋一般的類型的參照時,提供了新的選項。 請參考以下範例:

含有四個不同的參數化 List 實例的範例

選取 List<Integer> 的參照並使用搜尋 > 參照 > 專案時, 會強調顯示所有這四行中的 List 類型:

不含過濾器的搜尋

您可以利用「「搜尋視圖」功能表來過濾結果:

過濾器不相容只會留下與選定類型的指派相容之類型的參照:

過濾器不相容

過濾器不嚴格只會留下簽章完全相同的類型參照:

過濾器不嚴格

附註

註解會附加如何使用 Java 類型和方法並記錄到 java 程式檔的 Meta 資料, 之後即可影響編譯或於執行時期查詢。比方說,如果標註的方法未置換 Super 類別中的方法,則 @Override 會觸發編譯器警告:

置換註解

您可對 Java 類型執行的任何動作,都可以對註解執行:

有一個非常有用且完整支援 Eclipse 的註解是 @SuppressWarnings。 比方說,假設有一個 Private 方法目前未使用,但您不想刪除它:

警告:未用的 Private 方法

對新增 @SuppressWarnings 註解的警告提議呼叫快速修正:

提議 SuppressWarnings

選取快速修正即會新增該註解。Eclipse 編譯器會移除 foo 的警告,來接受該註解:

插入 SuppressWarnings

列舉表

列舉是在執行時期,由一組已知、有限的物件所實例化的類型:

列舉類型

同樣地,您可以對 Java 類別執行的任何動作,皆可對列舉執行:

Autoboxing

autoboxing 和 auto unboxing 可於初始類型指派給 Object 參照或從 Object 參照擷取時,產生精確的語法:

autoboxing 強調顯示

Eclipse 的程式碼操作特性會完美地處理 autoboxing, 提供正確的類型給新的區域變數和正確的程式碼輔助。 為了能夠瞭解程式碼,您也可以將 autoboxing 或 autounboxing 轉換實例標示成編譯警告(利用 開啟「錯誤/警告」喜好設定頁面Java > 編譯器 > 錯誤/警告喜好設定頁面的潛在程式設計問題區段), 或利用語法著色(透過 開啟「語法著色」喜好設定頁面Java > 編輯器 > 語法著色喜好設定頁面的 Java > Auto(un)boxed 表示式區段)來強調顯示它們:

啟用 autoboxing 的強調顯示

加強型 for 迴圈

對於依序操作陣列或集合的每一個元素的一般情況而言,J2SE 5.0 可使用新的、較乾淨的語法。 Eclipse 提供了能夠自動猜測要疊代之集合的 "foreach" 程式碼範本:

提議 foreach 範本

選擇範本會產生:

插入 foreach 範本

另外,Eclipse 也提供了「轉換成加強型 for 迴圈」快速輔助,供您在可能的情況下,升級 1.4 樣式的 for 迴圈。

其他

J2SE 5.0 的所有其他特性都是由 Eclipse 的編輯、搜尋和程式碼操作工具來彈性處理: 祝您撰寫程式碼愉快!