如何在JavaPoet中添加"任何类型"问号?

Pie*_*uwe 9 java code-generation javapoet

我正在使用JavaPoet生成代码.

在生成的代码中的某处,我想添加一个具有以下参数的方法.

...
    public B someMethod(final AbstractObjectBuilder<Persoon,?> builder) {
       ...
    }
...
Run Code Online (Sandbox Code Playgroud)

所以我的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"));
...
Run Code Online (Sandbox Code Playgroud)

Jes*_*son 11

Foo<?>是一种简短的形式Foo<? extends Object>.使用WildcardTypeName此.

  • 这:ParameterizedTypeName.get(ClassName.get(Class.class),WildcardTypeName.subtypeOf(Object.class)给出一个Class <?>. (6认同)