JavaPoet 添加泛型参数

标签 java code-generation javapoet

如何生成具有以下签名的方法?

public <T extends MyClass> void doSomething(T t)

到目前为止我有:

MethodSpec.methodBuilder("doSomething")
        .addModifiers(Modifier.PUBLIC)
        .addTypeVariable(TypeVariableName.get("T", MyClass.class))
        .build()

编辑 这是上面代码生成的(我不知道如何添加参数):

public <T extends Myclass> void doSomething()

最佳答案

将您生成的 TypeVariableName 提取到一个变量中,以便您可以重用它的值

TypeVariableName typeVariableName = TypeVariableName.get("T", MyClass.class);

然后添加一个该类型的参数

MethodSpec spec = MethodSpec.methodBuilder("doSomething")
                            .addModifiers(Modifier.PUBLIC)
                            .addTypeVariable(typeVariableName)
                            .addParameter(typeVariableName, "t") // you can also add modifiers
                            .build();

关于JavaPoet 添加泛型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30969986/

相关文章:

java - Spring JUnit Mockito 单元测试 Controller 指定的类是一个接口(interface)

c - 有没有适合替代C宏的推荐代码生成方式?

java - 在运行时创建带有注释字段的 java 类

java - 如何使用 JavaPoet 生成调用父类(super class)构造函数的构造函数

gradle - java.lang.IllegalArgumentException:不支持的类文件主要版本57

java - 为什么默认情况下不包含 JCE Unlimited Strength?

java - 你如何从一个按钮关闭的java swing窗口返回一个值?

java - 向 Dropwizard 添加额外的指标

c# - Glass Mapper IEnumerable<Guid> 到 IEnumerable<Object>

java - JavaPoet如何生成没有名字的注解?