我正在用JavaPoet生成代码。
在生成的代码中,我想添加一个具有以下参数的方法。
...
public B someMethod(final AbstractObjectBuilder<Persoon,?> builder) {
...
}
...所以我的JavaPoet代码应该如下所示
//This does not compile, since I don't know what to put as last argument (questionmark)
ParameterizedTypeName parameterizedTypeName = ParameterizedTypeName.get(AbstractObjectBuilder.class, propertyType,?);
ParameterSpec parameterSpec = ParameterSpec.builder(parameterizedTypeName, name+"Builder", Modifier.FINAL).build();
MethodSpec modMethod = MethodSpec.methodBuilder(name)
.addModifiers(Modifier.PUBLIC)
.addParameter(parameterSpec)
.returns(TypeVariableName.get("B"));
...发布于 2015-03-18 11:37:46
Foo<?>是Foo<? extends Object>的一种短形式。为此使用WildcardTypeName。
https://stackoverflow.com/questions/29117410
复制相似问题