How would I generate a method with the following signature?
public <T extends MyClass> void doSomething(T t)
So far I have:
MethodSpec.methodBuilder("doSomething")
.addModifiers(Modifier.PUBLIC)
.addTypeVariable(TypeVariableName.get("T", MyClass.class))
.build()
EDIT This is what the above code is generating (I don't know how to add the parameter):
public <T extends Myclass> void doSomething()
Extract the TypeVariableName
you generate into a variable so you can reuse its value
TypeVariableName typeVariableName = TypeVariableName.get("T", MyClass.class);
Then add a parameter of that type
MethodSpec spec = MethodSpec.methodBuilder("doSomething")
.addModifiers(Modifier.PUBLIC)
.addTypeVariable(typeVariableName)
.addParameter(typeVariableName, "t") // you can also add modifiers
.build();
If you want to pass a Generic typed structure, use the follow way.
MethodSpec loadListInteger = MethodSpec.methodBuilder("loadListInteger")
.addModifiers(Modifier.PUBLIC)
.returns(void.class)
.addParameter(ParameterizedTypeName.get(List.class, Integer.class), "list")
.build();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With