2015-03-18 5 views
8

Ich erzeuge Code mit JavaPoet.Wie fügt man das Fragezeichen 'Any Type' in JavaPoet ein?

Irgendwo im generierten Code möchte ich eine Methode hinzufügen, die das folgende Argument hat.

... 
    public B someMethod(final AbstractObjectBuilder<Persoon,?> builder) { 
     ... 
    } 
... 

Also mein JavaPoet Code so etwas wie dies

//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")); 
... 
+0

können Sie '> ' – Prashant

Antwort

5

Foo<?> ist eine Kurzform von Foo<? extends Object> aussehen soll. Verwenden Sie hierzu WildcardTypeName.

+0

Können Sie uns bitte ein Beispiel geben? – confile

+3

Dies ist: ParameterizedTypeName.get (ClassName.get (Class.class), WildcardTypeName. TypeOf (Object.class) gibt eine Klasse . – Thecheeselover