imho, that seems like that adds a lot of unnecessary code. One of the nice things about Wicket is that it keeps the bloat to a minimum.
-----Original Message----- From: Doug Donohoe [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 14, 2008 8:21 AM To: users@wicket.apache.org Subject: Re: Using generics with some non-generic classes in Wicket 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-Wi cket-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] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]