该类ParameterizedTypeName
允许您在声明超类时指定泛型类型参数。例如,如果您的MyClassGenerated
类是该类的子MyMapper
类,您可以设置一个泛型类型参数,MyMapper
如下所示:
TypeSpec classSpec = classBuilder("MyClassGenerated")
.addModifiers(PUBLIC)
.superclass(ParameterizedTypeName.get(ClassName.get(MyMapper.class),
ClassName.get(OtherClass.class)))
.build();
这将生成一个TypeSpec
等效于以下类的对象:
public class MyClassGenerated extends MyMapper<OtherClass> { }
虽然问题中未指定,但请注意,您可以设置任意数量的泛型类型参数,只需将它们以正确的顺序添加到ParameterizedTypeName.get
调用中:
ParameterizedTypeName.get(
ClassName.get(SuperClass.class),
ClassName.get(TypeArgumentA.class),
ClassName.get(TypeArgumentB.class),
ClassName.get(TypeArgumentC.class)
); // equivalent to SuperClass<TypeArgumentA, TypeArgumentB, TypeArgumentC>
有关该方法的更多信息,请参阅此处ParameterizedTypeName.get()
的文档或JavaPoet GitHub 页面的“$T for Types”部分。