Somewhat related to this thread, when I moved to generics win Wicket 1.4, I created some utility classes such as:
public class VoidContainer extends WebMarkupContainer<Void> public class VoidPanel extends Panel<Void> public class StringLabel extends Label<String> public class IntegerModel extends Model<Integer> public class StringModel extends Model<String> public class DateModel extends Model<Date> public class DoubleModel extends Model<Double> And so on. This made my wicket code cleaner and easier to use. I think the Wicket 1.4 generics implementation is headed in the right direction. It was a pain at first because I had to parameterize everything, but creating convenience classes like this made it easier. I'm thinking about creating a patch with a suite of these types of classes because I think users will want something like this. -Doug Johan Compagner wrote: > > The problem is that wicket needs an annotation > > <genericsOptional> > > so that all the warnings about raw types are gone. > > A component only has to be generic if you use the IModel constructor or > call > getModel(), getModelObject() methods.. > for the rest it is not really needed > > johan > > On Wed, May 14, 2008 at 9:28 AM, Sebastiaan van Erk <[EMAIL PROTECTED]> > wrote: > >> My post kind of missed the point, I shouldn't post when I'm already half >> asleep. :-) >> >> Obviously MarkupContainer satisfies the MarkupContainer<?> in a >> method argument, so it accepts the raw type. However, it generates a >> warning >> because the method says it's generified, so you should be using the >> generic >> type. >> >> Johan Compagner wrote: >> >> > I dont care, because i cant do any thing with the ? The only thing it >> > enforces is that it must now be a generic class which is annoying. Not >> > to mention that in that area eclipse and javac accept different >> > things.... >> > >> >> The reason it warns you to use generics when generics are wanted is >> because Sun wants to be able to make it *required* (in a future release) >> to >> use generics where generics are wanted; at least, so I read... I think in >> the real world they wouldn't dare to do this because it would piss off so >> many users and break so much stuff. :-) >> >> But the idea is that if something is generified you should be using a >> type >> parameter, and using a raw type is *purely* for backwards compatibility >> with >> legacy code. >> >> Regards, >> Sebastiaan >> >> So or we in wicket dont use <?> any where and have supress warning >> > everywhere for that or we do use it and then suddenly it is in my eyes >> > restricted to much. >> > >> >> I don't understand >> >> >> > On 5/14/08, Sebastiaan van Erk <[EMAIL PROTECTED]> wrote: >> > >> > > Johan Compagner wrote: >> > > >> > > > yes thats the reason >> > > > >> > > > you are calling the method add with a generified component but that >> > > > container itself is not generified >> > > > >> > > > i dont like this about generics expecially the onces like this: >> > > > >> > > > add(MarkupContainer<?> container) >> > > > >> > > > then suddenly a none generified component cant be added... >> > > > thats really stupid <?> should mean anything.. including none >> > > > generics >> > > > >> > > No, that's not correct. For example, List<?> is much more restrictive >> > > than a raw List (which is a List). To a raw list you can add >> > > an >> > > instance of any type whatever, i.e., list.add(new Object()). But in >> > > List<?> the ? is a wildcard which says it could be any type there, >> > > i.e., >> > > it could be a List<Integer>. But you can't add a new Object() to a >> > > List<Integer>! >> > > >> > > Thus MarkupContainer<?> means "MarkupContainer parameterized by some >> > > unknown type", and *not* MarkupContainer parameterized by Object, >> > > which >> > > is what the raw type means. >> > > >> > > Regards, >> > > Sebastiaan >> > > >> > > johan >> > > > >> > > > >> > > > On Tue, May 13, 2008 at 5:55 PM, Stefan Simik < >> > > > [EMAIL PROTECTED]> >> > > > wrote: >> > > > >> > > > I have one idea, >> > > > > >> > > > > the reason of the warnigs is, that parent of AjaxPagingNavigator >> > > > > is >> > > > > PagingNavigator, >> > > > > which has parent Panel ---> that is not parameterized. >> > > > > >> > > > > The same problem is with LoopItem, which extends the >> > > > > WebMarkupContainer ---> that is not parameterized. >> > > > > >> > > > > ? could this be the reason ? >> > > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > > > > Stefan Simik wrote: >> > > > > >> > > > > > Mhmm, it is meaningful ;) I will know in future, thx >> > > > > > >> > > > > > One of the last occuring warning is, when working with >> > > > > > MarkupContainer#add(...) or #addOrReplace(...) method. >> > > > > > >> > > > > > Example: I have a simple AjaxPagingNavigator, to which I add a >> > > > > > simple >> > > > > > ListView >> > > > > > >> > > > > > >> ----------------------------------------------------------------------- >> > > > > > ListView<Integer> menu = new ListView<Integer>("id", numbers){ >> > > > > > //....populate metods >> > > > > > } >> > > > > > add(menu); //warning here >> > > > > > >> > > > > > The warning says: >> > > > > > "Type safety: The method add(Component...) belongs to the raw >> > > > > > type >> > > > > > MarkupContainer. >> > > > > > References to generic type MarkupContainer<T> should be >> > > > > > parameterized" >> > > > > > >> > > > > > I cannot find out, what's the warning reason, because ListView >> > > > > > self is >> > > > > > parameterized. >> > > > > > >> > > > > > >> > > > > > -- >> > > > > View this message in context: >> > > > > >> > > > > >> > > >> http://www.nabble.com/Using-generics-with-some-non-generic-classes-in-Wicket-tp17208928p17212015.html >> > > >> > > > Sent from the Wicket - User mailing list archive at Nabble.com. >> > > > > >> > > > > >> > > > > >> > > > > >> --------------------------------------------------------------------- >> > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] >> > > > > For additional commands, e-mail: [EMAIL PROTECTED] >> > > > > >> > > > > >> > > > > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: [EMAIL PROTECTED] >> > For additional commands, e-mail: [EMAIL PROTECTED] >> > >> > > > -- View this message in context: http://www.nabble.com/Using-generics-with-some-non-generic-classes-in-Wicket-1.4M1-tp17208928p17229755.html Sent from the Wicket - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]