這篇文章給大家分享的是java中用反射獲取泛型信息的方法,相信大部分人都還沒學(xué)會(huì)這個(gè)技能,為了讓大家學(xué)會(huì),給大家總結(jié)了以下內(nèi)容,話不多說,一起往下看吧。
成都創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),溫嶺網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:溫嶺等地區(qū)。溫嶺做網(wǎng)站價(jià)格咨詢:13518219792ParameterizedType
就是參數(shù)化類型的意思。
解釋:
聲明類型中帶有“<>”的都是參數(shù)化類型,比如List
,Map
。
getActualTypeArguments()
返回Type[],即“<>”里的參數(shù),比如Map
。
getRawType()
返回Tpye,得到“<>”前面的類型,比如List
。
getOwnerType()
返回Type,O類型變量調(diào)用時(shí)會(huì)返回OMap.Entry
。
實(shí)例代碼:
import org.junit.Test; import java.lang.reflect.Field; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.math.BigDecimal; import java.util.Map; public class ReflectDemo { private static Mapmap; @Test public void test(){ try { Class> aClass = Class.forName("com.test.annotation.param.ReflectDemo"); //獲取map屬性對(duì)象 Field field = aClass.getDeclaredField("map"); //獲取map屬性的類型 Type type = field.getGenericType();//返回屬性聲明的Type類型 if (type instanceof ParameterizedType) { //強(qiáng)轉(zhuǎn)為ParameterizedType對(duì)象 ParameterizedType parameterizedType = (ParameterizedType) type; //獲取原始類型 Type rawType = parameterizedType.getRawType(); System.out.println("map的原始類型為:"+rawType); //獲取map的類型的所有泛型信息 Type[] actualTypeArguments = parameterizedType.getActualTypeArguments(); for(int i=0;i 運(yùn)行結(jié)果:
以上就是java中用反射獲取泛型信息的方法的詳細(xì)內(nèi)容,代碼示例簡(jiǎn)單明了,如果在日常工作遇到此問題。通過這篇文章,希望你能有所收獲,更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
本文題目:java中用反射獲取泛型信息的方法-創(chuàng)新互聯(lián)
分享地址:http://weahome.cn/article/dhjihe.html