深入理解java泛型詳解 java為什么不支持泛型數(shù)組?
java為什么不支持泛型數(shù)組?這是一個(gè)數(shù)組機(jī)制。聲明數(shù)組時(shí),需要確定其類(lèi)型。它還與數(shù)組的內(nèi)存空間有關(guān)。當(dāng)您聲明一個(gè)數(shù)組時(shí),實(shí)際上是建立了一個(gè)空間。這個(gè)空間僅限于數(shù)據(jù),并不是所有的東西都能放進(jìn)去。泛型意
java為什么不支持泛型數(shù)組?
這是一個(gè)數(shù)組機(jī)制。聲明數(shù)組時(shí),需要確定其類(lèi)型。它還與數(shù)組的內(nèi)存空間有關(guān)。當(dāng)您聲明一個(gè)數(shù)組時(shí),實(shí)際上是建立了一個(gè)空間。這個(gè)空間僅限于數(shù)據(jù),并不是所有的東西都能放進(jìn)去。泛型意味著在使用特定類(lèi)型時(shí),在確定特定類(lèi)型之前不確定該類(lèi)型。所以這是不支持的。事實(shí)上,你可以使用集合列表和集合來(lái)支持泛型
在我看來(lái),在一個(gè)方法中獲得泛型方法的真正泛型類(lèi)型是可行的,但是如果你想通過(guò)一個(gè)方法獲得泛型方法的真正泛型類(lèi)型,就不應(yīng)該實(shí)現(xiàn)。
首先,Java中的泛型也稱(chēng)為參數(shù)化類(lèi)型。正確地記住,泛型應(yīng)該是jdk5引入的特性。泛型的目的是使數(shù)據(jù)類(lèi)型能夠作為參數(shù)傳入,以便可以動(dòng)態(tài)更改變量的數(shù)據(jù)類(lèi)型。
那么什么是通用方法?泛型類(lèi)型是在方法上聲明的。只有在調(diào)用方法時(shí)才會(huì)傳入實(shí)類(lèi)型。如果在方法中得到它,可以直接調(diào)用泛型對(duì)象的getClass方法。但是如果你想通過(guò)一個(gè)方法得到一個(gè)泛型方法的真正類(lèi)型,我不認(rèn)為它可以實(shí)現(xiàn)。因?yàn)椴徽{(diào)用方法時(shí),不會(huì)輸入實(shí)數(shù)據(jù)類(lèi)型,因此根本無(wú)法獲取泛型對(duì)應(yīng)的實(shí)類(lèi)型。
所以我將討論如何在泛型方法中獲得泛型的真實(shí)類(lèi)型。
舊規(guī)則,讓我們編寫(xiě)一個(gè)代碼來(lái)解釋。泛型方法的示例如下圖所示:
在上圖中,我聲明了一個(gè)泛型方法:findfirst,用于獲取數(shù)組的第一個(gè)元素。
運(yùn)行結(jié)果如下:
以上是我的答案。我希望它能幫助你