【问题标题】:Javapoet and generic class declarationsJavapoet 和泛型类声明
【发布时间】:2018-08-20 15:57:20
【问题描述】:

如何让 javapoet 生成下面的 java 代码?

class B<T extends U> implements A<T> {

}

我知道有一个class WildcardTypeName,但它只能生成? extends U? super U

我想要的是T extends U

【问题讨论】:

    标签: java generics javapoet


    【解决方案1】:

    在您的描述中,UA 应该是存在类。您可以使用以下代码。

    public static void main(String[] args) throws IOException {
      TypeVariableName t = TypeVariableName.get("T").withBounds(U.class);
      TypeSpec type = TypeSpec.classBuilder("B")
          .addTypeVariable(t)
          .addSuperinterface(ParameterizedTypeName.get(ClassName.get(A.class), t))
          .build();
      JavaFile.builder("", type).build().writeTo(System.out);
    }
    

    它的输出是

    import yourpackage.A;
    import yourpackage.U;
    
    class B<T extends U> implements A<T> {
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-14
      • 2018-12-14
      • 1970-01-01
      • 2019-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多