當前位置:編程學習大全網 - 源碼下載 - public interface BaseDAO<T>中的<T>是什麽用法

public interface BaseDAO<T>中的<T>是什麽用法

自IBM開發人員社區

------------

Java 語言中引入泛型是壹個較大的功能增強。不僅語言、類型系統和編譯器有了較大的變化,以支持泛型,而且類庫也進行了大翻修,所以許多重要的類,比如集合框架,都已經成為泛型化的了。這帶來了很多好處:

*

類型安全。 泛型的主要目標是提高 Java 程序的類型安全。通過知道使用泛型定義的變量的類型限制,編譯器可以在壹個高得多的程度上驗證類型假設。沒有泛型,這些假設就只存在於程序員的頭腦中(或者如果幸運的話,還存在於代碼註釋中)。

Java 程序中的壹種流行技術是定義這樣的集合,即它的元素或鍵是公***類型的,比如“String 列表”或者“String 到 String 的映射”。通過在變量聲明中捕獲這壹附加的類型信息,泛型允許編譯器實施這些附加的類型約束。類型錯誤現在就可以在編譯時被捕獲了,而不是在運行時當作 ClassCastException 展示出來。將類型檢查從運行時挪到編譯時有助於您更容易找到錯誤,並可提高程序的可靠性。

*

消除強制類型轉換。 泛型的壹個附帶好處是,消除源代碼中的許多強制類型轉換。這使得代碼更加可讀,並且減少了出錯機會。

盡管減少強制類型轉換可以降低使用泛型類的代碼的羅嗦程度,但是聲明泛型變量會帶來相應的羅嗦。比較下面兩個代碼例子。

該代碼不使用泛型:

List li = new ArrayList();

li.put(new Integer(3));

Integer i = (Integer) li.get(0);

該代碼使用泛型:

List<Integer> li = new ArrayList<Integer>();

li.put(new Integer(3));

Integer i = li.get(0);

在簡單的程序中使用壹次泛型變量不會降低羅嗦程度。但是對於多次使用泛型變量的大型程序來說,則可以累積起來降低羅嗦程度。

*

潛在的性能收益。 泛型為較大的優化帶來可能。在泛型的初始實現中,編譯器將強制類型轉換(沒有泛型的話,程序員會指定這些強制類型轉換)插入生成的字節碼中。但是更多類型信息可用於編譯器這壹事實,為未來版本的 JVM 的優化帶來可能。

由於泛型的實現方式,支持泛型(幾乎)不需要 JVM 或類文件更改。所有工作都在編譯器中完成,編譯器生成類似於沒有泛型(和強制類型轉換)時所寫的代碼,只是更能確保類型安全而已。

  • 上一篇:52《詩經·小雅·大田》
  • 下一篇:build是什麽意思啊
  • copyright 2024編程學習大全網