Igor Vaynberg wrote:
then our users have to suppress warnings in their code, which is
unacceptable at least to me. the whole generics thing turned out to be
quiet a lot crappier then i thought it would.

I actually like having the generics better than not having it. In both cases sometimes it's a pain: generics is verbose, non-generics you have to use typecasts all the time and a bunch of errors are delayed to runtime.

What I don't really understand is, if you don't like generics, why can't you just tell the compiler to ignore the warnings? I mean, in Java 5 generics is just not really "optional", not in the JDK libs either - if you ignore generics there you get warnings as well; so there too, it's the user's burden to bear.

And especially if you look at the vote result, I think the majority wants the generics...

Regards,
Sebastiaan


-igor


On Wed, May 14, 2008 at 12:48 PM, Johan Compagner <[EMAIL PROTECTED]> wrote:
yes then all the call to that method must be of a generic type.
cant be raw

i dont know what are we going to do in wicket i think we should decide it
should we just where we dont care about generic delete/not use the <?> and
then
supresswarning?

johan


On Wed, May 14, 2008 at 9:45 PM, Igor Vaynberg <[EMAIL PROTECTED]>
wrote:

so i just implemented IAuthorizationStrategy and on this line in my class:

public boolean isInstantiationAuthorized(Class< ? extends Component>
componentClass)

i get: Component is a raw type. References to generic type
Component<T> should be parameterized

so that means we have to change our sig to <? extends Component<?>>
but then we are back to the problem described in this thread.

generics suck.

-igor

On Wed, May 14, 2008 at 12:12 AM, Johan Compagner <[EMAIL PROTECTED]>
wrote:
I dont think that user gets a warning if a param is of raw type. But
we have a warning there.
The problem is that for example MarkupContainer.add(Component) or
IVisitor.visit(Component) i dont care what component is put in
generified or not.
In add it really doesnt matter because we dont do anything with it.
With visitor it is different because the user could use it inside the
method. But it should be useable without warnings for generified and
none generfied components..


On 5/14/08, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
if we have a signature that accepts a raw type, will that also cause a
warning in user's code?

also having those suppress annotations practically _everywhere_ will be
annoying

-igor


On Tue, May 13, 2008 at 11:56 PM, Johan Compagner <[EMAIL PROTECTED]
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....

 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.



 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<Object>). 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]


---------------------------------------------------------------------
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]


---------------------------------------------------------------------
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]

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to