You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Tom Eugelink <tb...@tbee.org> on 2012/05/02 12:02:58 UTC

generics

I would like to suggest an API improvement in the fluent interface, which should not break backwards compatibility. Currently if you create, say, a mandatory FileUploadField, you cannot do this.

/FileUploadField lFileUploadField = new FileUploadField("fileInput", ...).setRequired(true);
/
Because setRequired is actually implemented in FormComponent and returns a FormComponent. By adding the component type to the generics of FormComponent and casting the return value, this could be resolved.

/public abstract class FormComponent<T, C>/
/{
     public C setRequired(boolean required)
     {
         ...
         return (C)this;
     }
}
/
/public class FileUploadField extends FormComponent<List<FileUpload>, FileUploadField>/
/{
     ...
}

/Now the setRequired method in FormComponent knows exactly what type to return. The casting naturally does not earn a style award, but the improvement in the API does, and in my opinion is worth the trade-off.

Tom