JavaPoet添加通用参数

Eli*_*zer 10 java code-generation javapoet

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

public <T extends MyClass> void doSomething(T t)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有:

MethodSpec.methodBuilder("doSomething")
        .addModifiers(Modifier.PUBLIC)
        .addTypeVariable(TypeVariableName.get("T", MyClass.class))
        .build()
Run Code Online (Sandbox Code Playgroud)

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

public <T extends Myclass> void doSomething()
Run Code Online (Sandbox Code Playgroud)

Sot*_*lis 13

TypeVariableName生成的内容解压缩为变量,以便重用其值

TypeVariableName typeVariableName = TypeVariableName.get("T", MyClass.class);
Run Code Online (Sandbox Code Playgroud)

然后添加该类型的参数

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