-
getFields返回一个Field类型数组,其中包含当前类的public字段,如果此类继承于某个父类,同时包括父类的public字段。其它的proteced和private字段,无论是属于当前类还是父类都不被此方法获取。
-
getDeclareFields返回一个Field类型数组,结果包含当前类的所有字段,private、protected、public或者无修饰符都在内。另外,此方法返回的结果不包括父类的任何字段。 此方法只是针对当前类的。
/*** 获取本类及其父类的字段属性* @param clazz 当前类对象* @return 字段数组*/public static Field[] getAllFields(Class<?> clazz) {List<Field> fieldList = new ArrayList<>();while (clazz != null){fieldList.addAll(new ArrayList<>(Arrays.asList(clazz.getDeclaredFields())));clazz = clazz.getSuperclass();}Field[] fields = new Field[fieldList.size()];return fieldList.toArray(fields);}public static void main(String[] args) {//final Field[] fieldList = getAllFields(Subject.class);//for (Field field : fieldList) {// System.out.println(field);//}final List<String> list = getFieldsComment(Subject.class);System.out.println(list);}