2015-03-18 18 views
8

Sto generando codice con JavaPoet.Come aggiungere il punto di domanda 'Qualsiasi tipo' in JavaPoet?

Da qualche parte nel codice generato voglio aggiungere un metodo che ha il seguente argomento.

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

Quindi il mio codice JavaPoet dovrebbe essere simile a questo

//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

puoi usare '> ' – Prashant

risposta

5

Foo<?> è una forma abbreviata di Foo<? extends Object>. Utilizzare WildcardTypeName per questo.

+0

Potresti fornire un esempio? – confile

+3

Questo: ParameterizedTypeName.get (ClassName.get (Class.class), WildcardTypeName.subtypeOf (Object.class) restituisce una classe . – Thecheeselover

Problemi correlati