Я наткнулся на это, пытаясь понять смысл нового шарика для волос JDK Doclet.Принятый ответ мне не помог, потому что у Доклета есть различные внутренние классы, которые нельзя использовать.Кроме того, этот ответ больше похож на «как преобразовать TypeMirror в TypeElement»;учитывая недостаток java.lang.model ТАК вопросы + ответы, я думал, что все равно опубликую это.
Вот что я сделал:
import javax.lang.model.util.Elements;
import javax.lang.model.util.Types;
@Override
public boolean run(DocletEnvironment docEnv) {
...
elementUtils = docEnv.getElementUtils();
typeUtils = docEnv.getTypeUtils();
...
}
Когда у вас есть TypeElement t,это класс / интерфейс "kind", вы можете сделать что-то подобное, чтобы перейти от TypeMirror к TypeElement.
TypeMirror p = t.getSuperclass();
TypeElement pe = (TypeElement) typeUtils.asElement(p);
Надеюсь, это кому-нибудь поможет.