На всякий случай, если кто-то другой ищет это, я использовал следующий код, который добавляет некоторые накладные расходы, но для обработки только аннотации к Полям не следует добавлять слишком много:
private List<Field> getAllFields() {
List<Field> fieldList = new ArrayList<Field>();
// Add all fields from the current class
fieldList.addAll(Arrays.asList(mElement.getClass().getDeclaredFields()));
// Use an index to iterate over mElement's parent types
Class clazz = mElement.getClass();
// Get any fields from the parent class(es)
while (clazz.getSuperclass() != null) {
fieldList.addAll(Arrays.asList(clazz.getSuperclass().getDeclaredFields()));
// Set it to that parent class
clazz = clazz.getSuperclass();
}
return fieldList;
}
Возвращенный список будет содержать все поля для всех родительских и дочерних классов, причем mElement
является объектом, из которого вы ищете аннотации. Надеюсь, это поможет.