java怎么獲取一個(gè)泛型方法的真實(shí)泛型類型?
我認(rèn)為,如果在方法內(nèi)部獲取還是可行的,但如果希望通過一個(gè)方法來獲取一個(gè)泛型方法的真實(shí)泛型類型,那應(yīng)該是實(shí)現(xiàn)不了。
首先Java中的泛型,也叫參數(shù)化類型,沒記錯泛型應(yīng)該是jdk5引入的特性,泛型目的在于使數(shù)據(jù)類型可以作為參數(shù)傳入,從而可以動態(tài)的改變某個(gè)變量的數(shù)據(jù)類型。
那么什么是泛型方法呢?就是泛型類型是聲明在方法上,只有當(dāng)調(diào)用該方法時(shí)才會將真實(shí)類型傳入。如果你是在方法內(nèi)部獲取那直接調(diào)用泛型對象的getClass方法即可。但如果希望通過一方法來獲取某個(gè)泛型方法的真實(shí)類型,我認(rèn)為沒法實(shí)現(xiàn)。因?yàn)槲凑{(diào)用方法時(shí),真實(shí)的數(shù)據(jù)類型還未入,所以根本無法取到泛型對應(yīng)的真實(shí)類型。
所以下面我就說說如何在泛型方法內(nèi)部獲取泛型的真實(shí)類型。
老規(guī)矩,咱寫段代碼再來解釋。泛型方法的例子如下圖:
在上圖中,我聲明了一個(gè)泛型方法:findFirst, 用于獲取數(shù)組的第一個(gè)元素。
運(yùn)行結(jié)果如下圖:
以上就是我的答案,希望對你有所幫助吧