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.Notto 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 myeyesrestricted 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 butthat> > 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 nonegenerics> > No, that's not correct. For example, List<?> is much morerestrictive> than a raw List (which is a List<Object>). To a raw list you canadd 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 bysome> 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 AjaxPagingNavigatoris> >> 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 asimple> >>> 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 rawtype> >>> MarkupContainer. > >>> References to generic type MarkupContainer<T> should beparameterized"> >>> > >>> I cannot find out, what's the warning reason, because ListViewselfis> >>> 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]
smime.p7s
Description: S/MIME Cryptographic Signature