Javapoet 和泛型类声明



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

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

我知道有class WildcardTypeName,但它只能产生?extends U? super U.

我想要的是T extends U

在你的描述中,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> {
}

相关内容

  • 没有找到相关文章

最新更新