/*** 根据类型提取所有关联参数*/public static void getAllParameter(Type type, List<Class<?>> list) {Class<?> c1 = TypeUtil.getClass(type);if (type instanceof ParameterizedType) {Type[] ts = ((ParameterizedType) type).getActualTypeArguments();list.add(c1);for (Type tp : ts) {getAllParameter(tp, list);}} else {list.add(c1);}}
public static void main(String[] args) throws NoSuchFieldException {Field field = User.class.getDeclaredField("list");Type fieldGenericType = field.getGenericType();ArrayList<Class<?>> list = new ArrayList<>();ClasUtil.getAllParameter(fieldGenericType, list);StringBuilder param = new StringBuilder();for (int i = 0; i < list.size(); i++) {String simpleName = list.get(i).getSimpleName();if (i >= 1) {param.append("<");}param.append(simpleName);}for (int i = list.size() - 1; i > 0; i--) {param.append(">");}System.out.println("type = " + param.toString());}
/*** private CommonResp<List<PageResult<List<Primitive>>>> list;* <p>* 返回:type = CommonResp<List<PageResult<List<Primitive>>>>*/public static String getTypeString(ArrayList<Class<?>> list) {StringBuilder param = new StringBuilder();for (int i = 0; i < list.size(); i++) {String simpleName = list.get(i).getSimpleName();if (i >= 1) {param.append("<");}param.append(simpleName);}for (int i = list.size() - 1; i > 0; i--) {param.append(">");}return param.toString();}