public static Set<Field> getInheritedFields(final Class<?> clazz) { final Field[] fields = clazz.getDeclaredFields(); final Set<Field> declaredFieldSet = CollectionUtils.arrayToSet(fields); final Set<Field> ret = new HashSet<>(declaredFieldSet); Class<?> currentClass = clazz.getSuperclass(); while (currentClass != null) { final Field[] superFields = currentClass.getDeclaredFields(); for (Field superField : superFields) { if (!Modifier.isPrivate(superField.getModifiers()) && !Modifier.isStatic(superField.getModifiers()) && !containField(ret, superField)) { ret.add(superField); } } currentClass = currentClass.getSuperclass(); } ret.removeAll(declaredFieldSet); return ret; }
public static Set<Field> getOwnFields(final Class<?> clazz) { final Field[] fields = clazz.getDeclaredFields(); final Set<Field> declaredFieldSet = CollectionUtils.arrayToSet(fields); final Set<Field> ret = new HashSet<>(); final Set<Field> inheritedFields = getInheritedFields(clazz); final Set<Field> overriddenFields = getHiddenFields(clazz); for (final Field declaredField : declaredFieldSet) { if (!containField(inheritedFields, declaredField) && !containField(overriddenFields, declaredField)) { ret.add(declaredField); } } return ret; }
public static Set<Field> getInheritedFields(final Class<?> clazz) { final Field[] fields = clazz.getDeclaredFields(); final Set<Field> declaredFieldSet = CollectionUtils.arrayToSet(fields); final Set<Field> ret = new HashSet<>(declaredFieldSet); Class<?> currentClass = clazz.getSuperclass(); while (currentClass != null) { final Field[] superFields = currentClass.getDeclaredFields(); for (Field superField : superFields) { if (!Modifier.isPrivate(superField.getModifiers()) && !Modifier.isStatic(superField.getModifiers()) && !containField(ret, superField)) { ret.add(superField); } } currentClass = currentClass.getSuperclass(); } ret.removeAll(declaredFieldSet); return ret; }
public static Set<Field> getOwnFields(final Class<?> clazz) { final Field[] fields = clazz.getDeclaredFields(); final Set<Field> declaredFieldSet = CollectionUtils.arrayToSet(fields); final Set<Field> ret = new HashSet<>(); final Set<Field> inheritedFields = getInheritedFields(clazz); final Set<Field> overriddenFields = getHiddenFields(clazz); for (final Field declaredField : declaredFieldSet) { if (!containField(inheritedFields, declaredField) && !containField(overriddenFields, declaredField)) { ret.add(declaredField); } } return ret; }