java代碼例子 java怎么獲取一個(gè)泛型方法的真實(shí)泛型類型?
java怎么獲取一個(gè)泛型方法的真實(shí)泛型類型?在我看來(lái),從一個(gè)方法中獲取泛型方法的真正泛型類型是可行的,但是通過(guò)一個(gè)方法獲取泛型方法的真正泛型類型應(yīng)該是不可能的。首先,Java中的泛型也稱為參數(shù)化類型。
java怎么獲取一個(gè)泛型方法的真實(shí)泛型類型?
在我看來(lái),從一個(gè)方法中獲取泛型方法的真正泛型類型是可行的,但是通過(guò)一個(gè)方法獲取泛型方法的真正泛型類型應(yīng)該是不可能的。
首先,Java中的泛型也稱為參數(shù)化類型。正確地記住,泛型應(yīng)該是jdk5引入的特性。泛型的目的是使數(shù)據(jù)類型能夠作為參數(shù)傳入,以便可以動(dòng)態(tài)更改變量的數(shù)據(jù)類型。
那么什么是通用方法?泛型類型是在方法上聲明的。只有在調(diào)用方法時(shí)才會(huì)傳入實(shí)類型。如果在方法中得到它,可以直接調(diào)用泛型對(duì)象的getClass方法。但是如果你想通過(guò)一個(gè)方法得到一個(gè)泛型方法的真正類型,我不認(rèn)為它可以實(shí)現(xiàn)。因?yàn)椴徽{(diào)用方法時(shí),不會(huì)輸入實(shí)數(shù)據(jù)類型,因此根本無(wú)法獲取泛型對(duì)應(yīng)的實(shí)類型。
所以我將討論如何在泛型方法中獲得泛型的真實(shí)類型。
舊規(guī)則,讓我們編寫(xiě)一個(gè)代碼來(lái)解釋。泛型方法的示例如下圖所示:
在上圖中,我聲明了一個(gè)泛型方法:findfirst,用于獲取數(shù)組的第一個(gè)元素。
運(yùn)行結(jié)果如下:
以上是我的答案,希望能對(duì)大家有所幫助
從語(yǔ)法層面看,C#的語(yǔ)法比Java漂亮多了。以泛型為例,Java的泛型敢在C#前面叫泛型嗎,動(dòng)態(tài)等語(yǔ)言特性的加入,C#非常激進(jìn),C#的開(kāi)發(fā)效率非常高。
回到建筑物所有者的問(wèn)題上,一項(xiàng)技術(shù)是否牛與它的流行無(wú)關(guān),而是與它的生態(tài)系統(tǒng)有關(guān),即有多少人在為它開(kāi)發(fā)軟件或用它來(lái)開(kāi)發(fā)軟件。以操作系統(tǒng)為例,Linux操作系統(tǒng)要比windows好得多,但由于windows上的軟件非常多,具有先發(fā)優(yōu)勢(shì),因此Linux不能做windows上的桌面操作系統(tǒng)。再舉一個(gè)例子,JavaScript原本是一種蹩腳的語(yǔ)言,但由于它的先發(fā)優(yōu)勢(shì),web頁(yè)面是用JavaScript開(kāi)發(fā)的,越來(lái)越多的后端或桌面程序是用JS開(kāi)發(fā)的。基于JS的開(kāi)源軟件也有很多種,所以就連微軟和谷歌都在完善JavaScript,迫使它變得優(yōu)秀。
總之,一項(xiàng)技術(shù)能否普及,不僅取決于它自身的不斷奮斗,更取決于它的歷史進(jìn)程。