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]

Reply via email to