我正在使用Java的注释处理机制为我的某些类创建序列化程序。
我想检查当前处理的类的每个字段,并确保它是MyBaseSerializableClass
的子类。
我的问题是我只知道如何查找字段类型的直接超类:
TypeElement fieldType = (TypeElement)element;
TypeMirror superClassType = fieldType.getSuperclass();
我如何找到
superClassType
的超类并继续沿继承树前进,直到我点击Object
? 最佳答案
好吧,我不知道这是否是最好的方法,但这是我发现的解决方案:
Types typeUtils = processingEnv.getTypeUtils();
while (!typeElement.toString().equals(Object.class.getName())) {
element = (TypeElement)typeUtils.asElement(element.getSuperclass());
// do whatever with element
}