開發出高質量的系統
Jdk1.5中支持了泛型,在泛型的使用過程中經常會遇到這樣一類問題
調用的地方
你會發現編譯錯誤,但是在我們的需求中Child的集合類是可以代替Parent的集合類來使用的,但是因為編譯器不認同,因為兩個集合類之間沒有直接的繼承關系。如果實現呢?在Jdk1.5的Source中我們找到了答案,隨便找一個帶有泛型的類,點進去可以看到泛型的定義,例如ArrayList<E>? HashMap<K,V>? 等等這里以ArrayList為例:注意addAll這個函數
ok,明白了,這個就是問號的作用.更改我們的函數
?
posted on 2007-02-10 23:46 dreamstone 閱讀(8673) 評論(2) 編輯 收藏 所屬分類: jdk相關
原來還有這個東西,學到了,贊 回復 更多評論
謝謝,解惑了,?號是為了解決java泛型中List<String> 不是List<Object>子類,這樣關系的權宜之計。網上查到的資料采用類型擦除這樣的設計,是為了向前兼容,所以有了上述違法LSP原則的設計。 回復 更多評論
Powered by: BlogJava Copyright © dreamstone