1

我正在玩注解处理器和 JavaPoet。我有一个用@MyAnno 注释的方法:

@MyAnno
Observable<MyClass> get(int id);

我想生成一个有方法的类:

AsyncSubject<MyClass> get(int id);

到目前为止我所做的是:

ClassName classAsyncSubject = ClassName.get("rx.subjects", "AsyncSubject");
TypeName newReturnType = ParameterizedTypeName.get(classAsyncSubject, get(executableElement.getReturnType()));

这给了我:

AsyncSubject<Observable<MyClass>>

如何只获得 MyClass?

4

1 回答 1

3

如果您返回的类型始终是 an Observable<X>,您可以将结果从get(executableElement.getReturnType())to 转换ParameterizedTypeName并访问第一个类型参数:

((ParameterizedTypeName) get(executableElement.getReturnType()).typeArguments.get(0)

类型、容量和完整性检查适用。

于 2015-12-03T20:46:14.503 回答