Java中的<>@造型专家_day_16_20210412
??java中的<>
??首先說一下為什么我先不提<>號是什么, 因為這樣并不能讓初學者很好的理解,OK,接下來進入正題
??java中的基本類型有八種,每一種都有對應的包裝類,就拿int型說,對應的包裝類是Integer類 類型,這是因為java中所有的類都是 java.long.Object 的直接或者間接子類,但是八種基本類型不是類,所以不能向上轉型為Object類, 所以java引入包裝類,使得Object類能容納任何類型的數據。
??但是這會出現一個問題,當一個事物什么都能裝的時候,必然會引起問題,比如把所有的東西 全塞進一個盒子中,找起來就變得很麻煩,那怎么解決這個問題呢,很簡單,同一種類型的事物放在一個盒子,不同的不放,比如書柜只放書本,這樣當你需要找書本的時候去書柜里去找就好了。
??所以java中的< >就是用來定義這個盒子的,比如< Integer >,被這個修飾的類、方法都只能是Integer類型。
??當然上面是調用處,也就是一般當你用別人的代碼的時候才能看到的,你也可能會碰到另一種情況,就是在別人的源碼中可能會有 < T >,< E >,< ? > 等類型 尖括號,下面我就來說說這些都是什么意思。
??
?? ? 表示了不確定的類型
?? T 表示了個具體的java類型,對應的英文是type,格式
?? K 表示了java中鍵值對的鍵,對應的英文是key,鍵
?? V 表示了java中鍵值對的值,對應的英文是value,值
?? E 表示了元素,一般在集合中,我們會把屬性值叫做元素,對應的英文是element,元素
?? 這些其實都是約定俗成的規矩,在自己編碼時,可以加上這個< >,里面的值最好也按照規則來命名,當然這就和駝峰命名法一樣,并不是強制規定的,用A、B、c、d都沒問題,只是這樣不方便別人理解。
?? 最后我說一下這對 < > 叫什么,它叫 泛型。
??
?? 理解了泛型是什么,我們就來說一下它能有什么作用,其實在自己編碼過程中幾乎用不到泛型,因為寫出來的方法和類都是自己用,比如當我們需要保存一個int型數據,就不會傳入一個String類型數據,但是當我們的代碼需要讓別人去使用時,假如別人傳入一個String類型的數據,在你的代碼中,因為Object類是String類的父類,所以會發生多態,你需要在自己的代碼中去用instance判斷是否是String類型數據,然后你還要把他傳入的數據通過強制類型轉換 轉換為String類型的數據才能用,同時調用處也需要類型轉換,但是當我們加上泛型,當調用處的泛型寫上String時,就只有String類型數據,這時候會自動進行類型轉換,省了許多麻煩,也能防止調用處傳入不同的類型數據。
最后附上一張圖:
??
??以上就是今天學習比較深刻的理解了,希望能對查詢到這篇文章的朋友有幫助,以及自己日后可以繼續查看。
總結
以上是生活随笔為你收集整理的Java中的<>@造型专家_day_16_20210412的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据结构与算法】排序优化
- 下一篇: 【转】使用Apache Kylin搭建企