/** * 獲取field的型別,如果是複合物件,獲取的是泛型的型別 * * @param field * @return */ private static Class getFieldClass(Field field) { Class fieldClazz = field.getType(); if (fieldClazz.isAssignableFrom(List.class)) { Type fc = field.getGenericType(); // 關鍵的地方,如果是List型別,得到其Generic的型別 if (fc instanceof ParameterizedType) // 如果是泛型引數的型別 { ParameterizedType pt = (ParameterizedType) fc; fieldClazz = (Class) pt.getActualTypeArguments()[0]; //得到泛型裡的class型別物件。 } } return fieldClazz; } 正好這幾天剛寫了相關程式碼,供參考
/** * 獲取field的型別,如果是複合物件,獲取的是泛型的型別 * * @param field * @return */ private static Class getFieldClass(Field field) { Class fieldClazz = field.getType(); if (fieldClazz.isAssignableFrom(List.class)) { Type fc = field.getGenericType(); // 關鍵的地方,如果是List型別,得到其Generic的型別 if (fc instanceof ParameterizedType) // 如果是泛型引數的型別 { ParameterizedType pt = (ParameterizedType) fc; fieldClazz = (Class) pt.getActualTypeArguments()[0]; //得到泛型裡的class型別物件。 } } return fieldClazz; } 正好這幾天剛寫了相關程式碼,供參考