Javapoet超类泛型

马可·乔瓦尼(Marco Giovanni)

任何人都知道如何使用javapoet执行以下操作

public class MyClassGenerated extends MyMapper<OtherClass>{

}

我的生成代码:

TypeSpec generateClass() {
    return classBuilder("MyClassGenerated")
         .addModifiers(PUBLIC)
         .superclass(???????????????)
         .build();
}
埃尔·霍斯(El Hoss)

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”部分

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么泛型类型不适用于实参扩展两者的超类?

来自分类Dev

获取抽象超类上泛型类型参数的实际类型

来自分类Dev

Arraylist泛型对Object类进行超分类

来自分类Dev

什么是泛型类

来自分类Dev

上限泛型VS超类作为方法参数?

来自分类Dev

泛型方法从超类获取参数类型

来自分类Dev

是否可以映射(JPA)在抽象超类中使用泛型的Java类型层次结构?

来自分类Dev

泛型混淆:在编译时未定义泛型超类中的此类类型吗?

来自分类Dev

使用超类作为泛型子类型中的类型参数

来自分类Dev

Java中的泛型超类

来自分类Dev

在具有与非泛型超类同名的泛型类中使用类方法时发生错误

来自分类Dev

从泛型类调用泛型EventHandler

来自分类Dev

类的Dlang泛型

来自分类Dev

超类的Java泛型,但并非所有子类都希望定义类型参数

来自分类Dev

有什么方法可以在超类中定义泛型方法以引用继承类的类型?

来自分类Dev

泛型类的泛型构造函数

来自分类Dev

mixin如何知道泛型超类的类型参数

来自分类Dev

什么是泛型类

来自分类Dev

泛型类使用泛型参数

来自分类Dev

类的Dlang泛型

来自分类Dev

泛型类等于

来自分类Dev

当超类是Swift中的泛型类时,如何继承超类

来自分类Dev

从泛型类派生

来自分类Dev

Java泛型类中的超类

来自分类Dev

泛型类,泛型本身就是泛型

来自分类Dev

补充泛型类

来自分类Dev

超类中的泛型关系

来自分类Dev

检查泛型类

来自分类Dev

Javapoet 和泛型类声明