所以,我是一个工具箱,又花了 7 分钟的时间挖掘找到了答案。评论中的问题指向正确的方向,尽管它使用的是 ParameterizedTypeName.create() 现在是 ParameterizedTypeName.get()
用于示例目的的代码,因为其他人可能会发现这很有用。
ClassName containerClassName = ClassName.get(Container.class);
TypeName wildcardTypeName = WildcardTypeName.subtypeOf(ImportantInterface.class);
ParameterizedTypeName parameterTypeName = ParameterizedTypeName.get(containerClassName, wildcardTypeName);
classBuilder.addMethod(MethodSpec.constructorBuilder()
.addModifiers(Modifier.PUBLIC)
.addParameter(parameterTypeName, "cargo")
.addStatement(CodeBlock.builder()
.addStatement("//1. Collect Underpants")
.addStatement("//2. ...")
.addStatement("//3. Profit!!!")
.build())