【问题标题】:JavaPoet - get generic typeJavaPoet - 获取泛型类型
【发布时间】:2015-12-04 04:46:14
【问题描述】:

我正在玩注解处理器和 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?

【问题讨论】:

    标签: java android annotations javapoet


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 2011-07-22
      相关资源
      最近更新 更多