函数式编程
最开始的版本忘记了接口的情况…publicclassEEE{publicstaticvoidmain(String[]args){Listtypes=newArrayList();findAllTypes(DDD.class,types);System.out.println(types);}privatestaticvoidfindAllTypes(Classclazz,Listtypes){TypegenericSuperclass=clazz.getGenericSuperclass();if(genericSuperclassinstanceofParameterizedType){Collections.addAll(types,((ParameterizedType)genericSuperclass).getActualTypeArguments());}Type[]genericInterfaces=clazz.getGenericInterfaces();for(finalTypegenericInterface:genericInterfaces){if(genericInterfaceinstanceofParameterizedType){Collections.addAll(types,((ParameterizedType)genericInterface).getActualTypeArguments());}}Classsuperclass=clazz.getSuperclass();if(superclass!=null){findAllTypes(superclass,types);}for(finalClassanInterface:clazz.getInterfaces()){findAllTypes(anInterface,types);}}}