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