1. 程式人生 > >小白的JAVA之路——泛型講解(四)

小白的JAVA之路——泛型講解(四)

由於我學習java的時候跳過了UI開發的知識學習,因此對於元件Compoent類會有點陌生,不過這並不影響我們講解泛型機制的原理,現在,讓我們來繼續學習泛型機制。

4.1 呼叫遺留程式碼

java中的遺留程式碼是指編寫於JAVA SE5.0之前的程式碼,一直遺留到現在。那個時候的java設計人員並不知道現在的泛型程式碼,然而我們在使用呼叫遺留程式碼的時候可以與泛型類進行互動。

說明:

     1.JSlider類是Java SE 1.3中增加的,因此設計該類時還不存在泛型,Dictionary類還只是一個普通的原始型別。後來Dictionary類和HashTable類從Java SE 5.0後轉換為泛型類,因此當我們在JSlider遺留類的方法中使用Dictionary時,其已經轉變為無引數的泛型型別,可以填充在實參中新增有參泛型類。過程是有參泛型類->無參泛型類

ps:當使用setLabelTable時,不確定會不會對dictionary中的Integer進行強制轉換,因此會發生警告資訊,但是我編譯器沒有出現,是不是由於jdk版本過高的原因?或者有其他原因。

    2.相反情況,當我們在呼叫JSlider的getLabelTable()方法得到無引數型別的泛型物件,在轉變為有參型別泛型物件時也會出現警告。如下圖程式碼所示。

    ps:警告原因是因為我們從jSlider得到的標籤表不同,即裡面的資料有可能不一致,因此會出現警告資訊。

    ps:解決方法: 利用註釋annotation讓警告消失,這個註釋會讓讓方法內部的檢查關閉,如下圖所示。

總結:這部分我覺得算不上重點,但是對於掌握泛型還是有一點點幫助的。