JavaPoet - 获取泛型
JavaPoet - get generic type
我正在玩注解处理器和 JavaPoet。我有一个用@MyAnno注释的方法:
@MyAnno
Observable<MyClass> get(int id);
我想生成一个 class 它将有一个方法:
AsyncSubject<MyClass> get(int id);
到目前为止我所做的是:
ClassName classAsyncSubject = ClassName.get("rx.subjects", "AsyncSubject");
TypeName newReturnType = ParameterizedTypeName.get(classAsyncSubject, get(executableElement.getReturnType()));
这给了我:
AsyncSubject<Observable<MyClass>>
如何只获取MyClass?
如果您返回的类型始终是 Observable<X>
,您可以将结果从 get(executableElement.getReturnType())
转换为 ParameterizedTypeName
并访问第一个类型参数:
((ParameterizedTypeName) get(executableElement.getReturnType()).typeArguments.get(0)
适用类型、容量和完整性检查。
我正在玩注解处理器和 JavaPoet。我有一个用@MyAnno注释的方法:
@MyAnno
Observable<MyClass> get(int id);
我想生成一个 class 它将有一个方法:
AsyncSubject<MyClass> get(int id);
到目前为止我所做的是:
ClassName classAsyncSubject = ClassName.get("rx.subjects", "AsyncSubject");
TypeName newReturnType = ParameterizedTypeName.get(classAsyncSubject, get(executableElement.getReturnType()));
这给了我:
AsyncSubject<Observable<MyClass>>
如何只获取MyClass?
如果您返回的类型始终是 Observable<X>
,您可以将结果从 get(executableElement.getReturnType())
转换为 ParameterizedTypeName
并访问第一个类型参数:
((ParameterizedTypeName) get(executableElement.getReturnType()).typeArguments.get(0)
适用类型、容量和完整性检查。