我怎样才能从注释处理器中获取package name,generic type和?Parametrized typetypefield element
说,如果Element.asType返回java.util.List<String>,我想得到
- 包裹名字
java.util - 泛型类型
List<E>或原始类型List(最好是原始类型) - 实际类型
String
有什么方法element utils吗type utils?
我怎样才能从注释处理器中获取package name,generic type和?Parametrized typetypefield element
说,如果Element.asType返回java.util.List<String>,我想得到
java.utilList<E>或原始类型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.erasureDeclaredType.getTypeArguments