程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 探索Eclipse V3.1的新特性

探索Eclipse V3.1的新特性

編輯:關於JAVA

這份教程演示了 Eclipse 的最新發行版 V3.1 中的許多新特性。如果正考慮 從以前的發行版升級到 V3.1,或者正考慮從其他集成開發環境轉到 Eclipse, 那麼您會發現本教程非常有用。如果想修改代碼,以利用 Java ™ 語言的 最新一代 Java 2 Standard Edition V1.5(為 Java 編程語言添加了許多強大 的結構和便利),本教程也會給您帶來很大的幫助。

預備知識

了解本教程的學習目標和最佳學習方式。

關於本教 程

本教程演示了 Eclipse 的最新發行版 V3.1 中的許多新特性。如果正 考慮從以前的發行版升級到 V3.1,或者正考慮從其他集成開發環境轉到 Eclipse,那麼您會發現本教程非常有用。如果想修改代碼,以利用 Java 語言 的最新一代 Java 2 Standard Edition V1.5(為Java 編程語言添加了許多強 大的結構和便利),本教程也會給您帶來很大的幫助。

目標

在本 教程中,您將看到 Eclipse V3.1 的許多新特性。您將學習如何安裝 Eclipse 平台和底層的 Java 虛擬機(JVM)軟件,研究許多 Eclipse V3.1 創新,並探 索新的 Java 開發工具(JDT)通過 J2SE V1.5 的新語言構造促進開發的許多示 例。

先決條件

為更好地學習本教程,您應當具備 Java 軟件開發的經驗和 在 IDE 中創建代碼的經驗。還應當有從命令行安裝軟件、設置管理 shell 和系 統環境變量(例如 Java 語言的 CLASSPATH 和系統的 PATH)的經驗。熟悉 Eclipse 以前的發行版也有助於學習,但並不是必需的。

在開始之前, 必須在所用的 UNIX®、Solaris、Linux®、Mac OS X 或 Microsoft® Windows® 系統上安裝幾個軟件包。

具體來說,需要一個工作正常的 JVM 和一份 Eclipse V3.1 平台的副本。下 面是所需軟件的完整列表:

J2SE V1.5 Software Development Kit (SDK) (J2SE V1.5 也稱為 Java 2 Platform,Standard Edition V5.0。)

J2SE V1.5 Java Runtime Environment (J2RE)

Eclipse V3.1 SDK

系統需求

任何具有 JVM 的計算機都應當能夠運行 Eclipse。 但是,由於本文介紹的許多特性都針對 J2SE V1.5,所以機器最好能夠運行這個 版本的 Java。Sun Microsystems 為 Solaris、Windows 和 Linux 提供了 J2SE V1.5。蘋果為 Mac OS X (版本 10.4.4)提供了 J2SE V1.5。還支持其他一些 平台。

如果沒有安裝 J2SE V1.5 和 Eclipse V3.1,在繼續安裝之前應 確保至少有 300MB 的物理磁盤空間可用。還應當有足以運行 JVM 的內存。一般 來說,64 MB 以上可用物理內存是運行 JVM 的必備條件。可用內存越大,性能 就會越高。

Eclipse 簡介

經過一段相對較短時間,Eclipse 已經 成為開發其他 IDE 和開發許多問題領域的不同應用程序的流行基石。

例 如,Ruby 開發工具是一組特定於 Ruby 的插件,可以把 Eclipse 變成強大的 Ruby 編輯器。同時,Azureus 這個得到高度評價和廣泛應用的 Java 應用程序 ,能夠下載 BitTorrent 的 torrent (大型文件集合),它以 Eclipse 的富客 戶端平台(RCP)為基礎。

當然,Eclipse 也是一種功能日益強大、日益 受到人們歡迎的 IDE,可以編寫許多編程語言的代碼。由於它有著可擴展的框架 ,因此開發人員往往會單獨為 Eclipse 調整最尖端的開發工具。因為它的流行 ,商業開發工具廠商(例如 Rational® 和 Oracle)現均已提供專門為與 Eclipse 集成而設計的產品。

另外,Eclipse 的管理主體 —— Eclipse 基金會 —— 不斷為核心項目注 入資金,以進一步擴展 Eclipse 的功能。例如,Eclipse 測試和性能工具平台 (TPTP)項目就把測試、性能評測和監視工具添加到核心 Eclipse 平台。另一 個項目,Eclipse Web 工具平台(WTP)項目,添加的工具和技術則有助於開發 以 Web 為中心的應用程序。

總而言之,Eclipse 是大量工具的平台和保護傘,它促進了開發、便利了重 新開發(或 重構)、簡化了到多平台的移植(通過像 Standard Widget Toolkit(SWT)這樣的軟件包),並管理整個軟件開發生命周期 —— 從第一行 代碼到生產系統的監視。

Eclipse V3.1

在 2005 年 6 月,歷經了一整年的開發之後,Eclipse 基金會發布了一個有 重大意義的 Eclipse 新版本:V3.1。新發行版中的改進涉及的范圍從核心 Eclipse 平台到 Eclipse JDT 和 Eclipse 插件開發環境(PDE)(開發擴展 Eclipse 的軟件的完整環境)。如果您使用 Eclipse 時間不長,或者根本沒有 用過,那麼 V3.1 值得仔細研究。

Eclipse V3.1 中的新特性 —— 不論大小 —— 包括:

更好的性能在 V3.1 問世之前,Eclipse 有著遲緩的名聲。為了解決許多開 發人員的顧慮,新版本開發過程中有相當多的時間和精力都花在了對平台的優化 上,結果相當令人滿意。在 V3.1 中,Eclipse 的內存占用更少,整個 Eclipse 平台速度更快,跨各種平台(包括 Mac OS X、Windows 和 Linux)的響應性更好 。而且,平台處處都加上了工具,從而使性能的下降(或提高)更透明直觀。

例如,圖 1 中顯示了一些 Eclipse V3.1.1、最新的維護發布版的評測結果 。

圖 1. Eclipse V3.1.1 的部分性能標准測試

類似的圖表對於 Eclipse 的後續發行版也存在,甚至包括軟件的 nightly builds 版。在 Eclipse 的 Web 站點上可以查看更多標准測試結果。

更智能化的幫助Eclipse V3.1 包含上下文敏感的全新動態幫助系統,能夠跟 上用戶從一個任務到另一個任務的變化腳步。從一個視圖轉到另一個視圖 —— 甚至從一代碼到另一行代碼,動態幫助視圖都會更新,為當前的任務提供最相關 的主題和文檔列表。增強的可用性大大小小的變化讓 Eclipse 平台用起來更簡 單。例如,整個平台現在支持雙向語言,可以使用關鍵字過濾首選項或屬性 — — 不必在長長的列表中亂翻(圖 2 顯示了與關鍵字 tab 匹配的首選項),可 以一次導入多個項目,甚至能從 tar 或 zip 檔案導入,插件安裝也簡單到只要 安裝一個 jar 文件,然後新的安裝向導就會自動安裝插件的全部相關項。

圖 2. 搜索所有與 tab 有關的首選項面板

J2SE V1.5

除了以上列出的許多好處之外,所有在 J2SE V1.5 中能發現的新的 Java 語 言增強在 Eclipse V3.1 中都支持,包括泛型、自動裝箱、增強的 for 循環、 注釋、枚舉類型(enums)以及其他。J2SE V1.5 不僅擴展了 Java 語言,而且 它的許多特性還讓編程語言更具類型安全性,使得編譯時錯誤和運行時錯誤更少 。

例如,清單 1 演示了一些 J2SE V1.5 的新特性:

清單 1. J2SE V1.5 的新特性

package demo;

import java.util.ArrayList;

public class Shapes {

  public enum Shape {
   SQUARE  (2),
   CIRCLE  (1),
   TRIANGLE (3);

   private final Integer data;

   Shape(int i) {
    this.data = i;
   }

   public int value() {
    return this.data;
   }
  }

  public static void main(String[] args) {
   ArrayList<Shape> a = new ArrayList<Shape> ();
   for (Shape s: Shape.values()) {
    a.add(s);
   }

   for (int i = 0; i < a.size(); i++) {
    Shape s = a.get(i);
    double perimeter = 0;

    switch (s) {
     case SQUARE: 
      perimeter = s.value() * 4;
      break;
     case CIRCLE: 
      perimeter = s.value() * 3.14159;
      break;
     case TRIANGLE: 
      perimeter = s.value() * 3;
      break;
    }

    System.out.print("The perimeter of a " +
     s.value() + "-inch + s + " is " +
      perimeter + " inches" );
   }
  }
}

很快,J2SE V1.5 的新枚舉類型 成為全功能的類,能夠擁有方法、屬性和其 他。自動裝箱 和 自動拆箱 使原語類型可快速提升為兼容類並支持相反的功能 。所以,this.data = i 不要求升級(會在 this.data = new Integer(i) 這樣 的代碼中看到)。

通用集合(例如 ArrayList)現在可以接受類型參數(例如 Shape),把集 合的成員限制在指定類型內。而且,集合返回的類型也是受限的。這樣,像 a.get(i) 這樣的語句不再一定要“降級”或從 Object 類型轉換到 Shape。後 一套特性合起來叫作 泛型。

最後,(Shape s: Shape.values()) 這段代碼是列表成員迭代的一個新的快 捷方式。

這一節提供了 Eclipse V3.1 中的眾多改進的一個簡短列表(為了簡潔)。 上面列出的許多改進以及其他一些改進,都將在本教程中演示。

安裝預備軟件和組件

在開始學習本教程之前,必須安裝和設置 先決條件 中列出的軟件和組件。

安裝 J2SE V1.5 和 J2RE V1.5

下載並安裝 J2SE V1.5 SDK 和 V1.5 J2RE。(如果系統已經有了 J2SE V1.5.0_06 或以上版本,可以跳過這步。)

通常,J2SE SDK 和 JRE 的發布形式是自解壓的二進制文件。安裝(在 Linux)上很容易,就像這樣(假設已經把 J2SE 和 J2RE 包下載到主目錄下) :

% cd ~
% mkdir ~/java
% cd ~/java
% mv ~/jdk-1_5_0_06-linux-i586.bin .
% mv ~/jre-1_5_0_06-linux-i586.bin .
% chmod +x jdk-1_5_0_06-linux-i586.bin \ 
    jre-1_5_0_06-linux-i586.bin
% ./jdk-1_5_0_06-linux-i586.bin
..
% ./jre-1_5_0_06-linux-i586.bin
..
% ls -F
jdk1.5.0_06/ jre1.5.0_06/

安裝 Eclipse V3.1 SDK

下載適合所用平台的 Eclipse V3.1 SDK。可以在 Eclipse Downloads 上找 到 SDK。通常,安裝很容易,只需把 Eclipse .tar.gz 文件釋放到選中的目錄 即可。例如,如果正在使用 Linux,請下載 Eclipse V3.1 SDK 的 tar 包,然 後用以以下命令把它解壓縮到一個目錄,例如 ~/java/:

% cd ~/java
% mv ~/eclipse-SDK-3.1.1-linux-gtk.tar.gz .
% tar zxvf eclipse-SDK-3.1.1-linux-gtk.tar.gz 

為了驗證 Eclipse 已經成功安裝,請進入解壓 Eclipse 的目標目錄,確保 java 可執行程序在 PATH 中,並運行 java -jar eclipse/startup.jar。例如 :

% export JAVA_DIR=$HOME/java
% export JAVA_HOME=$JAVA_DIR/jdk1.5.0_06/sdk
% export PATH=$JAVA_HOME/bin
% export CLASSPATH=$JAVA_HOME
% cd $JAVA_DIR
% java -jar eclipse/startup.jar

如果 Eclipse 提示為工作區選擇一個目錄,請輸入 $HOME/java/workspace 。這個目錄將保存在 Eclipse 中創建的所有文件(當然,如果有許多項目,以 後可以創建其他工作區,可能每個工作區包含一個項目。)

泛型編程

J2SE V1.5 為 Java 新增的一個最有價值的特性就是泛型。為了體會泛型的 價值和目的,請看清單 2。

清單 2. 從哈希表插入和提取元素

import  java.util.Hashtable;
class Demo
{
  public static void main(String[] args)
  {
   Hashtable h = new Hashtable();

   h.put(new Integer(0), "Horse Feathers");
   String s = (String) h.get(new Integer(0));
   System.out.println(s);
  }
}

像這樣的代碼如果反復編寫會很費力(肯定可以證明),而且突出顯示的代 碼行的復雜性則掩飾了它實際上的簡單目的。更糟的是,編譯器捕捉不到不匹配 的類型——例如用 h.get() 檢索出對象之後如果轉換到錯誤的類型。實際上, 向下轉型(downcasting)(沿著對象繼承樹向下轉型的過程,比如從 Object 到 String)是 Java 程序的運行時 bug 的一大源頭。

當然,還可以用固定類型實現自己的哈希表。例如,MyStringHashTable 可 能包裝了通用的 Hashtable,而且只通過 Integer 索引添加了 String 元素。 在這種情況下,MyStringHashTable.put() 和 MyStringHashTable.get() 應當 適當地重新做定義,只接受類型正確的參數,並返回 String。

雖然這樣的 MyStringHashTable 是類型安全的,但它就不再靈活了。要把新 形式的數據保存到哈希表中,就必須在全新的獨立對象中重新創建大多數 MyStringHashTable 代碼。

進入泛型

理想情況下,像 Hashtable 類這樣的東西,應當既靈活 又 嚴格(類型安全 ):例如,鍵和值的類型應當是在初始化的時候參數化,避免類型轉換的需要, 允許編譯器捕獲類型不匹配。而且,實際上,參數化類型也是 Java V1.5 的新 泛型的基礎。

創建和使用泛型

在這一節,使用 Eclipse 及其對泛型的支持創建和優化示例應用程序。

如果還沒啟動 Eclipse,請啟動它,進入工作台創建新項目。要創建新項目 ,請選擇 File > New > Project...。指定 Generics Example 作為項目 名稱,並從 JDI Compliance 區中選擇 5.0(單擊下拉菜單可以找到)。最後, 單擊 Finish。

在新項目中創建 Java 類。請選擇 File > New > Class,輸入 demo 作為包名稱,輸入 Demo 作為類名。選中復選框,生成 public static void main(String[] args) 方法框架。現在,單擊 Finish。

在 Package Explorer 面板中單擊新的 Demo 類,然後把清單 3 的代碼復制 並粘貼到 Demo.java 面板中。

清單 3. 簡單的泛型類

package  demo;

class GenericContainer <A>
{
  private A data;

  public GenericContainer(A data)
  {
   this.data = data;
  }

  public A get()
  {
   return data;
  }
}

public class Demo
{
  public String storeString(String s)
  {
   GenericContainer<String> gc =
    new GenericContainer<String>(s);
   String t = gc.get();
   return t;
  }

  public Integer storeInteger(Integer i)
  {
   GenericContainer <Integer> gc =
    new GenericContainer<Integer> (new Integer(i));
    return gc.get();
  }

  public static void main(String[] args) {
   Demo d = new Demo();

   System.out.println(d.storeString("This is a test"));
   System.out.println(d.storeInteger(18000));
  }
}

按 Ctrl+S 組合鍵保存代碼,並選擇 Run > Run...。出現 Run 對話框時 ,單擊右下角的 Run 按鈕。輸出面板中應產生以下輸出: This is a  test 
18000

將鼠標指針懸停在 gc.get() 每個調用上。若您懸停在 storeString 中的第 一次使用上,會彈出一個小提示信息,指示 gc.get() 返回一個 String,而懸 停在第二個使用時,會提示實例方法返回了一個 Integer (請參閱圖 3)。

圖 3. 跟蹤一個通用方法調用,查看它返回的類型

現在您知道了為什麼要把泛型添加到 Java 中,以及泛型的工作方式。下面 將介紹 Eclipse V3.1 是如何支持和增強泛型的。

用泛型捕獲錯誤

因為泛型的目的是幫助避免向下轉型錯誤,所以 Eclipse 會標記出可通過泛 型的使用獲益的操作。

例如,請在 Eclipse 中用 5.0 編譯器設置創建下面這個簡短的 Java 應用 程序:

package demo;

import java.util.ArrayList;

public class Demo2 {

  public static void main(String[] args) {
   ArrayList a = new ArrayList();
   a.add(new Integer(1));
  }
}

代碼輸入之後,兩個小圖標 —— 一個藍色燈泡和一個警告標記 —— 會出 現在 a.add(...) 的起始行上,如圖 4 所示。如果將鼠標懸停在這個圖標上, 會出現一條消息,提示您 ArrayList 應當參數化。

圖 4. Eclipse 指出更適於使用泛型的時機

類型安全更強的代碼是 ArrayList>Integer< a = new ArrayList>Integer<()。

Eclipse 還提供了重構技術,可以促進泛型的使用。請看清單 4.

清單 4. 將代碼重構為使用泛型

package demo;

import java.util.ArrayList;
import java.util.List;

public class Demo3 {
   public class Brother {
    private String name;

    public Brother(String s) {
     name = s;
    }

    public String get() {
     return name;
    }
   }

   public static void main(String[] args) {
    Demo3 d = new Demo3();

    List l = new ArrayList(3);
    l.add(d.new Brother("Groucho"));
    l.add(d.new Brother("Harpo"));
    l.add(d.new Brother("Chico"));
    l.add((Brother) l.get(1));

    for (int i = 0; i < l.size(); i++) {
     Brother b = (Brother) l.get(i);
     System.out.println(b.get());
    }
   }
}

輸入以上代碼後,Eclipse 將使用藍色燈泡和黃色波浪線標記許多行,表示 可以做改進。要將其重構為使用泛型,請選擇 Refactor > Infer Generic Type Arguments。出現下一對話框時,把兩個選項都選中,然後單擊 Preview 按鈕。Eclipse 會展示要做的變化,如圖 5 所示。

圖 5. 在 Eclipse 中預覽重構為使用泛型的情況

Eclipse 重構器不僅對 List 和 ArrayList 進行參數化,而且刪除了 for 循環中的類型轉換。單擊 OK 接受修改。代碼轉換為:

List>Brother< l = new ArrayList>Brother< (3);
...
l.add(l.get(1));

最後,在任何 Eclipse 處理非泛型類型的地方,都能處理泛型類型。例如, 可以安全地把泛型類型改名。

新循環

隨著泛型的加入,Java V5 現在支持 foreach 的一種快捷方式,對列表中的 元素進行迭代。輸出 List l 成員的舊式 for 循環可改寫為一種更干淨的格式 :

for (Brother b: l)
  System.out.println(b.get());

就像對許多舊 Java 語言特性一樣,Eclipse V3.1 包含了一個針對 J2SE V1.5 的新 foreach 構造的模板。Eclipse 不僅會生成 foreach 代碼,還會猜 測(根據上下文和位置)要對哪個集合進行迭代。

例如,在最後一個 l.add() 後輸入 fore,然後按下 Ctrl+Space。Eclipse 會把 foreach 模板作為選項提供,並顯示它要生成的代碼,如圖 6 的示。

圖 6. Eclipse 能夠根據上下文自動生成 foreach 循環

選擇推薦的 foreach 模板,生成這個代碼:

for (Brother brother : l) {

}

J2SE V1.5 語言的更多特性

泛型的添加必將減少 Java 代碼中的 bug 數量,而其他 J2SE V1.5 特性無 疑能夠提高您的生產力。

J2SE V1.5 引入了許多可以簡化開發的語言特性。本教程將介紹其中的兩個 :自動裝箱和枚舉類型。

自動裝箱

自動裝箱和自動拆箱提供了簡單、干淨的語法,用來把原語值分配給對象, 以及從對象讀取原語值。例如,在過去,要這樣寫:

public class Box {
  public Box(Integer i) {
  ...
  }
}

...

Box o = new Box(new Integer(1));

而現在可以這樣寫:Box n = new Box(2)。更好的是, Eclipse V3.1 能夠 突出顯示自動裝箱和自動拆箱的實例。

要查看這個特性,請將清單 5 復制並粘貼到 Eclipse 中的新類內。

清單 5. 自動裝箱和自動拆箱演示

package demo;

public class Box {

  private Integer data;

  public Box(Integer i) {
   data = i;
  }

  public Integer get() {
   return data;
  }

  public static void main(String[] args) {
   Box o = new Box(new Integer(100));
   Box n = new Box(200);
   int oi = o.get().intValue();
   int ni = n.get();
   System.out.println("Your numbers are " + oi
     + " and " + ni);
  }
}

請選擇 Windows > Preferences...,再選擇 Java > Editor > Syntax Coloring > Java > Auto(un)boxed Expressions,顯示圖 7 所 示的選項。選擇 Enable,然後選擇 Bold,然後單擊 Apply 和 OK。

圖 7. 突出顯示的裝箱和拆箱實例

在返回 Eclipse 中的類面板時,裝箱的實例 new Box(200) 和拆箱的實例 ni = n.get(),分別按照規范用紅色和粗體標記:

圖 8. 突出顯示的裝箱和拆箱實例

如果想讓編譯器額外為自動裝入和自動拆箱的實例加標記,可選擇 Window > Preferences,然後選 Java > Compiler > Errors/Warnings > J2SE 5.0 Options,再將 Boxing and unboxing conversions 設置成 Warning 或 Error 即可。

請記住,可以在 Preference 對話框的搜索框中輸入關鍵字,從而迅速地找 到任何首選項。例如,選擇 Window > Preferences,然後在搜索框中輸入 boxing。帶有相關選項的面板就會出現,如圖 9 所示。

圖 9. 找到影響自動裝箱和自動拆箱的首選項

枚舉類型

在 Java 語言的這一發行版出現之前,枚舉通常是用手工實現的:

public static final int GROUCHO_MARX = 0;
public static final int HARPO_MARX  = 1;
public static final int CHICO_MARX  = 2;
public static final int KARL_MARX  = 3;

確實非常老套,而且這類人為的枚舉類型不是類型安全的,缺少名稱空間, 是非常 脆弱的,也就是說,修改常量就會帶來巨大的破壞,因為值被編譯到一 個或多個模塊或程序中。如果沒有重新編譯或重新安裝引用這些常量的每個模塊 ,那麼系統的行為就無法預測。

為了修正自寫枚舉的許多問題,J2SE V1.5 添加了一個全功能的類,名為 enum 類型,用來代表枚舉類型。

從最簡單的形式上看,J2SE V1.5 的枚舉類型與其他編程語言中的類似構造 很相似。例如,用現代 Java 語言編寫的功能相同的代碼如下:

public enum Actors {
  GROUCHO, CHICO, HARPO, KARL
}

以下代碼將遍歷所有值的列表:

package demo;

public class Demo4 {
  public enum Actors {
   GROUCHO, CHICO, HARPO, KARL
  }

  public static void main(String[] args) {
   for (Actors actor : Actors.values())
    System.out.println("Say hello to " + actor);
  }
}

因為枚舉現在是 Java 語言中的類,所以 Eclipse 提供了獨立的對話框來創 建它們。請選擇 File > New > Enum 打開圖 10 所示的對話框。

圖 10. 用 Eclipse 創建新的 Java 枚舉

Java 枚舉也可以比較和序列化。甚至,枚舉還能有方法和屬性,就像其他對 象一樣。所以,前面的 Actors 可以進一步擴展成這樣:

package demo;

public class Demo4 {
  public enum Actors {
   GROUCHO ("What about this sanity clause?"),
   CHICO ("Everyone knows there ain't no such " +
     "thing as sanity clause!"),
   KARL ("Ugh!"),
   HARPO ("Honk! Honk!");

   private final String line;

   Actors(String s) {
    this.line = s;
   }

   public String line() {return line;}
  }

  public static void main(String[] args) {
   for (Actors actor : Actors.values())
    System.out.println(actor.line());
  }
}

如果把這段代碼復制粘貼到新的 Eclipse 類 Demo4 中,並運行代碼,即可 看到:

What about this sanity clause?
Everyone knows there ain't no such thing as sanity clause!
Ugh!
Honk! Honk!

若 Outline 視圖處於打開狀態,Eclipse 會提供新枚舉的概要視圖,如圖 11 所示。

圖 11. 新的 Java 枚舉類型類的概要

其他出色的特性

除了提高編程的速度和准確性之外,Eclipse V3.1 還添加了許多特性,當您 在 Eclipse 界面中導航時,可為您提供協助。上文中已提及的有:可以搜索許 多 Eclipse 首選項面板,根據關鍵字找到屬性;在編輯器中可以突出顯示多種 語言構造,讓代碼更具可讀性。

還有一些便利之處可能會給您帶來一些幫助。

快捷鍵

在任何 Eclipse 編輯器或視圖中,按 Ctrl+Shift+L 即可看到可用的快捷鍵 (key binding)的完整列表。例如,在 Java 編輯器中,按 Ctrl+Shift+L 會 顯示出一個長長的特性列表,可以直接通過鍵盤使用(請參閱圖 12)。

圖 12. 按下 Ctrl+Shift+L 顯示所有快捷鍵

在 General > Keys 首選項頁面中也可以找到快捷鍵的列表。(也在以在 快捷鍵列表中用 Ctrl+Shift+L 直接打開這個頁面,如圖 12 底部的提示所示。 )

動態幫助

因為 Eclipse 如此流暢地整合了這麼多工具,所以只要輕點鼠標,即可方便 地從一個編輯器切換到分析器或項目編輯器。Eclipse V3.1 中的幫助系統已改 進,可以跟得上您工作的腳步。

如果按下 F1 或從菜單中選擇 Help > Dynamic Help,那麼 Eclipse 會 顯示上下文敏感的幫助面板,隨著在任務之間的切換,幫助內容也會發生動態變 化。幫助視圖如圖 12 所示。

圖 13. Eclipse 的動態幫助系統

打開一個 Java 文件或本教程中的示例,並單擊不同的行。您可以看到幫助 視圖會根據上下文發生變化。在進行以下幾節的學習時,請保持幫助視圖打開。

注釋

J2SE V1.5 的注釋允許把 Java 類類型和方法的元數據附加到源代碼。然後 注釋就可以影響編譯過程(甚至可以在運行時查詢注釋)。

如果沒有打開自動裝箱和自動拆箱的編譯器報警,現在請打開,而且如果必 要,請重新打開自動裝箱的示例代碼。報警打開後,自動裝箱和自動拆箱的實例 就會被加上標記。

點擊第一個警報圖標。應當得到兩個選項:一個是把常量 200 釋放到本地變 量,另一個是添加 @SuppressWarnings 'boxing' 注釋到 main()。請選擇後者 。代碼變成這樣:

@SuppressWarnings("boxing")
public static void main(String[] args) {
...
}

現在,如果重新構建自動裝箱示例,Eclipse 不會生成任何警告,而且前面 顯示的報警圖標也被消除。

像其他語言構造一樣,Eclipse V3.1 能夠自動擴展可用的注釋。例如,在自 動裝箱示例中,把光標放在 get() 方法旁,並輸入 @D,然後按下 Ctrl+Space 。在選項列表中,選擇注釋 @Deprecated,它表示這個方法已經作廢了(也就是 說,編寫了更好的 get() 方法或者不再支持這個 get() 方法)。

根據首選項,get() 方法的名稱在它定義的地方和調用這個方法的兩行代碼 中將被廢除(請參閱圖 14)。

圖 14. 注釋方法,表明不再使用該方法

如果幫助視圖仍然打開,請單擊 @Deprecated 注釋,最頂級入口會指向 java.lang.Deprecated 的 Javadoc。

結束語

不論是開發工具、應用程序或者大量的 Java 代碼,Eclipse V3.1 都能提高 您的生產力。它運行在所有最流行的操作系統上 —— 而且運行速度更快 —— 而且仍然在不斷增加巨大的特性集。

實際上,如果您是 Java 開發人員,那麼 Eclipse 的 Java 開發工具和它的 測試和性能工具平台為創建、調試、優化和監視應用程序提供了豐富的工具套件 。Java 2 標准版 V1.5 讓 Java 的類型安全更高、更易使用,而 Eclipse V3.1 則支持和強化了 J2SE V1.5 的所有關鍵構造。

正如從本文演示的幾個示例中可以看到的,在 Eclipse 中編寫 Java 程序是 一件充滿樂趣的工作。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved