从字段元素获取包名称和参数化类型 - 注释处理器

Get package name and parametrized type from a field element - Annotation Processor

如何从 Annotation 处理器中的 field elementtype 获取 package namegeneric typeParametrized type

说,如果Element.asType returns java.util.List<String>,我想得到

element utils,type utils有方法吗?

正在获取包裹java.util

Element        e   = processingEnv.getTypeUtils().asElement(type);
PackageElement pkg = processingEnv.getElementUtils().getPackageOf(e);

获取原始类型List:

TypeMirror raw = processingEnv.getTypeUtils().erasure(type);

获取类型参数,例如String:

if (type.getKind() == TypeKind.DECLARED) {
    List<? extends TypeMirror> args =
        ((DeclaredType) type).getTypeArguments();
    args.forEach(t -> {/*...*/});
}

参见:Types.asElement, Elements.getPackageOf, Types.erasure and DeclaredType.getTypeArguments