Object范圍非常廣,而T從一開始就會限定這個類型(包括它可以限定類型為Object)。 Object由于它是所有類的父類,所以會強制類型轉換,而T從一開始在編碼時(注意是在寫代碼時)就限定了某種具體類型,所以它不用強制類型轉換。(之所以要強調在寫代碼時是因為泛型在虛擬機中會被JVM擦除掉它的具體類型信息,這點可參考泛型,在這里不做引申)。
個人理解 object 即自然數而T代表自然數n(任意一個確定的自然數),?則是任意一個自然數
?,這個可能在用到反射需要獲取Class類型時用到,它的解釋就是:接收一個不確定的類型,有點和Object一樣。我對它一個理解是,如果只用”?”那么它和Object是一樣的,但是”?”有比Object稍微“高級”有點的用法,就是它能縮小一個不確定的范圍,利用類似”? extends Test”,這就意味著只接收接收Test類的繼承類,是不是比Object的范圍縮小了?
另有一篇文章http://blog.csdn.net/baple/article/details/25056169,有興趣可以看一下
新聞熱點
疑難解答