I have this method, which grabs all declared fields from a class, including all ancestor classes:
public static List<Field> getAllDeclaredFields(Class<?> type) {
final List<Field> fields = new LinkedList<>();
Class<?> superclass = type.getSuperclass();
fields.addAll(Arrays.asList(type.getDeclaredFields()));
while (superclass != null) {
fields.addAll(Arrays.asList(superclass.getDeclaredFields()));
superclass = superclass.getSuperclass();
}
return fields;
}
I realize that I can use reflection here, but that's not the point of my question. My question is, why is this line:
superclass = superclass.getSuperclass();
.. not setting the variable to its superclass? The variable just continues to reference the original class, even after the assignment.
Aucun commentaire:
Enregistrer un commentaire