mal*_*din 4 java annotations annotation-processing annotation-processor
我怎样才能获得package name,generic type并且Parametrized type从type从field element在注释处理器?
说,如果Element.asType回来java.util.List<String>,我想得到
java.utilList<E>或原始类型List(最好是原始类型)String有没有方法element utils,type utils?
Rad*_*def 11
获得包裹java.util:
Element e = processingEnv.getTypeUtils().asElement(type);
PackageElement pkg = processingEnv.getElementUtils().getPackageOf(e);
Run Code Online (Sandbox Code Playgroud)
获取原始类型List:
TypeMirror raw = processingEnv.getTypeUtils().erasure(type);
Run Code Online (Sandbox Code Playgroud)
获取类型参数,例如String:
if (type.getKind() == TypeKind.DECLARED) {
List<? extends TypeMirror> args =
((DeclaredType) type).getTypeArguments();
args.forEach(t -> {/*...*/});
}
Run Code Online (Sandbox Code Playgroud)
请参阅:Types.asElement,Elements.getPackageOf,Types.erasure和DeclaredType.getTypeArguments.