博為峰小博老師:
[getClass()相同]
看一段代碼:
運行結果為:
這意味著,泛型是什么并不會對一個對象實例是什么類型的造成影響,所以,通過改變泛型的方式試圖定義不同的重載方法也是不可以的:
[盡量使用精確的類型定義泛型]
盡量使用精確的類型定義泛型,除非必要,否則不要寫一個接口或者父類上去:
就像這樣,list中的是一個Number類型,往里面添加的是Integer與Double,這樣導致get出來的元素也都是Number類型的,失去了子類擴展的功能。如果要讓子類變為Interger和Double也可以,(Integer)list.get(0)和(Double)list.get(1)強轉就可以了,但是這樣不就失去了泛型的意義了嗎?所以,盡量用精確的類型去定義泛型。