I hate repeating myself and being the compiler's teacher. IMHO the generics that are implemented in Java resulted in terrible code where you have to repeat yourself over and over and over. Are you sure your text field holds a String and your model returns a String?
TextField<String> field = new TextField<String>("someId", new PropertyModel<String>(foo, "property")); This counts for 3 times the type String. In a recent discussion with Igor on ##wicket, we saw a way to remove at least 1 String. By providing model factory methods for concrete models: Model, CompoundPropertyModel and PropertyModel. For abstract models it doesn't make sense... Igor suggested the following syntax: TextField<String> field = new TextField<String>("someId", PropertyModel.of(foo, "property")); i.e. ModelType.of(....) I am +1 for adding these methods. We can do the same for components, although the benefit is typically less, and it might even send our users down the wrong path thinking they can't use the 'new' keyword. TextField<String> field = TextField.of("someId", PropertyModel.of(foo, "property")); WDYT? Martijn -- Become a Wicket expert, learn from the best: http://wicketinaction.com Apache Wicket 1.4 increases type safety for web applications Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.4.0