See More

--------------------- ·´Éä·ºÐÍÐÅÏ¢ | --------------------- # ¸¸Àà»ñÈ¡×ÓÀà´«µÝµÄ·ºÐÍÐÅÏ¢ Class ÀàÊÇ·´ÉäµÄ±Ç׿,ʲô·´Éä¶¼µÃ´ÓËû¿ªÊ¼ ËüÓÐÒ»¸ö·½·¨ Type getGenericSuperclass();//·µ»Ø±íʾ´Ë Class Ëù±íʾµÄʵÌ壨Àà¡¢½Ó¿Ú¡¢»ù±¾ÀàÐÍ»ò void£©µÄÖ±½Ó³¬ÀàµÄ Type¡£ Type ÊÇÒ»¸ö½Ó¿Ú,ËüÓÐÒ»¸ö×ÓÀà½Ó¿Ú--ParameterizedType Type ---- > ParameterizedType(ÎÒÃǵõ½Õâ¸öType,»áÇ¿ÖÆ×ª»»³ÉÕâ¸öÀàÐÍ) ParameterizedType > ²ÎÊý»¯ÀàÐÍ Æäʵ¾ÍÊÇ Demo > ¾ÍÊÇÀà,¼ÓÉÏÀàÐͲÎÊý,ÀàÃûºÍ·ºÐÍ > getActualTypeArguments()//»ñÈ¡ÕæÊµµÄÀàÐͲÎÊýÃÇ,·µ»ØÒ»¸öType[] > ÉÏÃæµÄ·½·¨·µ»ØÒ»¸öType[]Êý×é,ÄÇôÕâ¸öÊý×é¾ÍÊÇÎÒÃÇÐèÒªµÄClass[] ʾÀý´úÂë > !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Class c = (Class) ((ParameterizedType)this.getClass().getGenericSuperclass()).getActualTypeArguments()[0]; > Õâ´®´úÂëдÔÚÄãµÄ·ºÐÍÀàÀïÃæ > ×îºÃдÔÚ¹¹Ô캯Êý,ÄÇôÕâ¸öc,¾ÍÊÇÕâ¸öÀàµÄ×ÓÀà´«µÝÉÏÀ´µÄ·ºÐÍÀàÐ͵ÄClass¶ÔÏó > Èç¹û×ÓÀà´«µÝString ..ÄÇôÕâ¸öc ¾ÍÊÇString.class > Èç¹û×ÓÀà´«µÝInteger ..ÄÇôÕâ¸öc ¾ÍÊÇInteger.class »ñÈ¡×ÓÀà´«µÝµÄÀàÐÎ(¸úÉÏÃæÒ»Ñù) ParameterizedType parameterizedType = (ParameterizedType) this.getClass().getGenericSuperclass(); clazz = (Class) parameterizedType.getActualTypeArguments()[0];