溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中Object與泛型的區別有哪些

發布時間:2020-11-24 15:38:35 來源:億速云 閱讀:2113 作者:Leah 欄目:編程語言

Java中Object與泛型的區別有哪些?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

Object和泛型的兩點區別是:

Object范圍非常廣,而T從一開始就會限定這個類型(包括它可以限定類型為Object)。

Object由于它是所有類的父類,所以會強制類型轉換,而T從一開始在編碼時(注意是在寫代碼時)就限定了某種具體類型,所以它不用強制類型轉換。(之所以要強調在寫代碼時是因為泛型在虛擬機中會被JVM擦除掉它的具體類型信息,這點可參考泛型,在這里不做引申)。

比如在jdk中的List類是個泛型類?,F在我們制定它的類型是Object。

List<Object> list = new ArrayList<Object>();
int i = 0;
String s = "s";
list.add(i);
list.add(s);

List本身是個泛型類,現在我們指定它接收Object類型的參數,此時就可以放置任意類型的參數進去,而在取出來是就必須得進行強制類型轉換成具體的類型。

現在我們如果將List指定接收String類型的參數,那么這個List就只能放置String類型,且取出來時就不用進行強制類型轉換。

這點給我們帶來的啟示是,在編寫類似List類的時候,一定要注意是否用泛型。一定要多寫幾個泛型類,多討論多理解,不然還是可能會攪在一起。

接著是&#63;,這個可能在用到反射需要獲取Class類型時用到,它的解釋就是:接收一個不確定的類型,有點和Object一樣。我對它一個理解是,如果只用"&#63;"那么它和Object是一樣的,但是"&#63;"有比Object稍微“高級”有點的用法,就是它能縮小一個不確定的范圍,利用類似"&#63; extends Test",這就意味著只接收接收Test類的繼承類,是不是比Object的范圍縮小了?

以上就是Object、T、&#63;的區別。多寫幾行代碼,多做試驗,多討論,就知道在何時何地恰當的使用了。

看完上述內容,你們掌握Java中Object與泛型的區別有哪些的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女