如下代码尚未完全实现,先记一笔: private List<String> getListByModel(Serializable serializable){ List<String> list = new ArrayList<String>(); Class<? extends Serializable> clazz = serializable.getClass(); Class<?> superClz = clazz.getSuperclass(); if(superClz instanceof Serializable){ Method md[] = superClz.getDeclaredMethods(); for (int m = 0; m < md.length; m++) { if (md[m].getName().indexOf("get")==0) { try { Object obj = md[m].invoke(serializable, new Object[0]); list.add(String.valueOf(obj)); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } } } Method method[] = clazz.getDeclaredMethods(); for (int i = 0; i < method.length; i++) { if (method[i].getName().indexOf("get")==0) { try { Object object = method[i].invoke(serializable, new Object[0]); if(object instanceof Serializable){ Class<?> clz = object.getClass(); Method md[] = clz.getDeclaredMethods(); for (int j = 0; j < md.length; j++) { if (md[j].getName().indexOf("get")==0) { try { Object obj = md[j].invoke(object, new Object[0]); list.add(String.valueOf(obj)); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } } } else { list.add(String.valueOf(object)); } } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } } return list; }