Maybe I am too accustomed to generics now but I can't imagine how a non-generic
Component class definition with a generic Model parameter can look like.
Now Compinent is defined as
class Component<T> ... {
public Component(final MarkupContainer<?> parent, final String id,
final IModel<T> model) {
...
}
public final T getModelObject() {
...
}
How should a non generic class definition look like? And pepole that don't like
or need generics can still use the raw types.
My preference for a strong gneric API comes from the experience I made when I
moved from Wicket 1.2 to 2.0. The simple syntactic modifications for generic
Components showed up several programming errors that we otherwise had to debug
during runtime of the application. It also showed up some design problems of
our applicatioin. So a strong generic API may took a little bit more time in
developing an application but it saves much more time in debugging.
Stefan Lindner