新版的J2SE 5.0 Tiger引進數個在Java Community Process下發展與泛型(Generics)相關的幾個新特色功能。我們先從一般性的觀念開始進入主題,然後逐步地介紹泛型、相關流程控制的改進、搭配泛型的Collection…等。說明的重點在於瞭解先前我們所面臨的問題,然後再討論這幾個新特色功能怎樣著手處理,並且搭配一些範例程式碼來使你熟悉它們的用法。
一開始我們先以「傳值」的問題來作為說明的切入點。所有的程式語言,不管它是根據程序性的、物件基礎的,或物件導向的設計典範,必然都必須面對傳值的問題。傳值的時候,也可以使用不同的設計方式。不過,這裡我們並不在乎一個Java程式員應該自己要知道在傳值時的各種特性,我們在乎的是「有個什麼東西被傳進、傳出了」。
至於是什麼東西?在Java中,原生型別(generic types)如int、double…等或任何的物件類別也都可以,如單一個元素,或含有多個元素的陣列…等,陣列可以是原生型別,也可以是任意類別的物件。所以基本上,可以任意地傳遞任何我們想要傳遞的「東西」。......