Class<Student> clazz = Student.class; Field[] fields = clazz.getDeclaredFields(); for (Field field : fields) { System.out.println(field.getName()); Type type = field.getGenericType(); getGenteric(type); } public static void getGenteric(Type type) { System.out.println(type); if(type instanceof ParameterizedType){ ParameterizedType parameterizedType = (ParameterizedType) type; Type[] types = parameterizedType.getActualTypeArguments(); for (int i = 0; i < types.length; i++) { getGenteric(types[i]); } } }