Я использую механизм обработки аннотаций Java для создания сериализаторов для некоторых из моих классов.
Я хотел бы проверить каждое поле обрабатываемого в данный момент класса и убедиться, что это подкласс MyBaseSerializableClass
.
Моя проблема в том, что я знаю только, как найти непосредственный суперкласс типа поля:
TypeElement fieldType = (TypeElement)element;
TypeMirror superClassType = fieldType.getSuperclass();
Как мне найти суперкласс superClassType
и продолжить движение вверх по дереву наследования, пока я не нажму Object
?
1 ответ
Ну, я не знаю, лучший ли это способ, но вот решение, которое я нашел:
Types typeUtils = processingEnv.getTypeUtils();
while (!typeElement.toString().equals(Object.class.getName())) {
element = (TypeElement)typeUtils.asElement(element.getSuperclass());
// do whatever with element
}
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.