個(gè)人讀書筆記,部分沒(méi)讀懂的知識(shí)點(diǎn)可能會(huì)簡(jiǎn)單概括或缺失,以后反復(fù)閱讀后再完善。
第5章 泛型
第23條: 請(qǐng)不要在新代碼中使用原生態(tài)類型
聲明中具有一個(gè)或多個(gè)類型參數(shù)的類或接口,就是泛型。
使用原生態(tài)類型會(huì)在運(yùn)行時(shí)導(dǎo)致異常。
Set<Object>是個(gè)參數(shù)化類型,表示可以包含任何對(duì)象類型的一個(gè)集合;
Set<?>則是一個(gè)通配符類型,表示只能包含某種未知對(duì)象類型的一個(gè)集合。
Set則是個(gè)原生態(tài)類型。
第24條: 清除非受檢警告
@SuppressWarnings("unchecked")
可以掩蓋警告。但使用時(shí)要加注釋,說(shuō)明為什么這么做是安全的。
第25條:列表優(yōu)于數(shù)組
列表:List<Object>。 數(shù)組:Object[]。
利用數(shù)組,可以在運(yùn)行時(shí)發(fā)現(xiàn)錯(cuò)誤,但利用列表,在編譯時(shí)已經(jīng)發(fā)現(xiàn)錯(cuò)誤了。
第26條:優(yōu)先考慮泛型
使用泛型比使用需要轉(zhuǎn)換類型的代碼更加安全,也更加容易。
第27條: 優(yōu)先考慮泛型方法
第28條: 利用有限制通配符來(lái)提升API的靈活性
有限制的通配符類型:Iterable<? Extends E>