程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Eclipse 3.1中的Java泛型支持

Eclipse 3.1中的Java泛型支持

編輯:JAVA編程入門知識
  Java 5 提供泛型支持,泛型支持是開發人員多年以來所要求的特性。它代表了 Java 編程語言一次具有重要意義的升級。像泛型這麼復雜的技術,不僅對工具供給商也對開發人員帶來了挑戰。 <!-- frame contents --> <!-- /frame contents --> 本文著重介紹 Eclipse 如何應對泛型挑戰以及泛型給 Java 語言帶來的變化,展示了如何在 Eclipse 中充分利用泛型,包括對於快速幫助、快速修復、重構和項目參數選擇的支持。此外,還展示了完全泛型化語言的一些微妙而重要的方面。
  
  Java 中的泛型
  
  幾乎從第一個版本開始,Java 技術的創立者們就已經開始討論對該語言添加泛型支持。C++ 通過標准模板庫對泛型進行支持,但是由於缺少所有其他類(嵌入在 Java 語言中的 Object 類中)的一個統一父類,泛型的實現也受到阻礙。Java 編程語言的泛型支持是其歷史上最重大的語法變化。由於某些顯而易見的原因,工具支持比其他 SDK 升級的步法要慢得多。盡管如此,現在 Eclipse V3.1 已經對這些語言的新特性有了出色的支持。本文重點介紹其中的一些新特性。
  
  Java 5 項目
  
  為了打開 Eclipse V3.1 中的 Java 泛型支持,需要在機器上安裝 Java 5,從一些平常的地方都可以下載到 Java 5。泛型支持連同項目屬性一起出現在編譯器設置頁面。這意味著像以前一樣,每個項目具有獨立的 SDK 設置。為了創建使用泛型的項目,必須在創建項目時指定語言級別或者通過現有項目的項目屬性指定語言級別。
  
  Java 5 設置使用兩個特定的屬性頁。第一個屬性頁指定編譯器設置。
  
  圖 1. 針對 Java 5 支持的特定於編譯器的設置
  


  
  除非您已經在 Eclipse for Java 5 中設置了默認項目設置,否則需要為該項目覆蓋那些設置。JDK compliance 區域答應您決定源文件和類文件的設置。當您把源文件設置為 5.0 級別時,就會獲得很多新的內容幫助和重構選項。
  
  另一個相關屬性對話框是樹型視圖中的 Errors/Warnings 區域。
  
    圖 2. 項目屬性的 Errors/Warnings 區域
  
  


  
  大量 J2SE 5 選項能夠控制 Eclipse 為您的 Java 5 代碼產生什麼類型的錯誤和警告(請參見表 1)
  
   表 1. Eclipse 為 Java 5 代碼產生的錯誤和警告 J2SE 5 選項 警告類型 Unchecked generic type operation 編譯器每當碰到未經檢查的泛型類型操作,就將發出一個錯誤或者警告。這種操作包括諸如 List 或 ArrayList 等類型上的操作,但沒有指定類型。每當您使用一個保存有對象的舊式 Collection 類時就會產生一個警告。 Generic type parameter declared with a final type bound 編譯器每當碰到一個涉及 final 類型的類型綁定時,就會發出一個錯誤或者警告。請看這個示例方法簽名:
  public int doIt(List<? extends String> list)
  
  因為 String 是 final 類型,參數不能擴展 String,所以這樣寫比較有效:
  public int doIt(List<String> list) Inexact type match for vararg arguments 當編譯器不能從 varargs 參數確定開發人員的意圖時,它將生成一個警告。有一些與數組相關的 varargs 是不明確的。 Boxing and unboxing conversions 對自動裝箱操作發出警告(裝箱操作可能影響性能),並且不再對類型包裝對象做對象身份的假設。這是一個默認狀態下被忽略的小警告。 Missing @Override annotation 應該為任何重寫的方法包含 @Override 注釋。缺少這個注釋可能表示開發人員沒有意識到該方法被重寫。 Missing @Deprecated annotation 由於缺少 @Deprecated 標志而產生的警告。 Annotation is used as super interface 您不能把 Deprecated 類作為超級接口。例如,不推薦這種寫法:
  public interface BadForm extends Deprecated {
  
  }
  。 Not all enum constants covered on switch
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved