10

我正在用 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"));
...
4

1 回答 1

12

Foo<?>是 的简写形式Foo<? extends Object>。用于WildcardTypeName此。

于 2015-03-18T11:37:46.220 回答