Eclipse 3.1 包括 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:
如果需要進一步調整過的控制, 您可以對工作區全面設定編譯器標準層次(視窗 > 喜好設定 > Java > 編譯器),或針對每一個專案個別設定(從專案的快速功能表,選擇內容 > Java 編譯器)。 標準層次不同的專案可以在工作區中並存,且彼此相依。 您也可以使用內容 > Java 編譯器 > 錯誤/警告 > J2SE 5.0 選項, 針對每一個專案進一步調整所產生之編譯器警告和錯誤的類型。
通用類型可讓相同類別的物件安全地操作不同類型的物件。
比方說,其允許 List<String>
一律包含 String
,而 List<Integer>
一律包含 Integer
的編譯時期保證。
只要是 Eclipse 處理非通用類型的位置,即可處理通用類型:
Eclipse 3.1 在搜尋通用類型的參照時,提供了新的選項。請參考以下範例:
List<Integer>
的參照並使用搜尋 > 參照 > 專案時,
會強調顯示所有這四行中的 List 類型:
過濾器不相容只會留下與選定類型的指派相容之類型的參照:
過濾器不嚴格只會留下簽章完全相同的類型參照:
註釋會附加如何使用 Java 類型和方法並記錄到 java 程式檔的 Meta 資料,
之後即可影響編譯或於執行時期查詢。比方說,如果標註的方法未置換 Super 類別中的方法,則 @Override
會觸發編譯器警告:
您可對 Java 類型執行的任何動作,都可以對註釋執行:
有一個非常有用且完整支援 Eclipse 的註釋是 @SuppressWarnings
。
比方說,假設有一個 Private 方法目前未使用,但您不想刪除它:
@SuppressWarnings
註釋的警告提議呼叫快速修正:
foo
的警告,來接受該註釋:
列舉是在執行時期,由一組已知、有限的物件所實例化的類型:
同樣地,您可以對 Java 類別執行的任何動作,皆可對列舉執行:
autoboxing 和 auto unboxing 可於初始類型指派給 Object 參照或從 Object 參照擷取時,產生精確的語法:
Eclipse 的程式碼操作特性會完美地處理 autoboxing, 提供正確的類型給新的區域變數和正確的程式碼輔助。 為了能夠瞭解程式碼,您也可以將 autoboxing 或 autounboxing 的實例標示成編譯警告(視窗 > 喜好設定 > Java > 編譯器 > 錯誤/警告 > J2SE 5.0 選項 > Boxing 和 unboxing 轉換),或利用語法顏色來強調顯示(視窗 > 喜好設定 > Java > 編輯器 > 語法著色 > Java > Auto(un)boxed 表示式):
對於依序操作陣列或集合的每一個元素的一般情況而言,J2SE 5.0 可使用新的、較乾淨的語法。 Eclipse 3.1 提供了 "foreach" 程式碼範本,可自動猜測要疊代的集合:
Eclipse 3.1 也提供了「轉換成加強型 for 迴圈」快速輔助,於可能的位置升級 1.4 樣式的 for
迴圈。
J2SE 5.0 的所有其他特性都是由 Eclipse 的編輯、搜尋和程式碼操作工具來彈性處理: