<? extends Foo> collections are read only, it would be too inconvenient to make the model collection read only :)
-igor On Thu, Feb 26, 2009 at 8:34 PM, Jeremy Thomerson <[email protected]> wrote: > This is what I was commenting on last week on the list (or earlier this > week). One expects List<? extends Foo> while the other expects List<Foo>. > I'm not fully convinced yet that the "? extends" is the better option. > Either way, I think they should be the same. > > -- > Jeremy Thomerson > http://www.wickettraining.com > > On Thu, Feb 26, 2009 at 8:27 PM, Brill Pappin <[email protected]> wrote: > >> Roughly what I'm doing is: >> >> class TypeA{} >> >> class TypeAModel extends LoadableDetachableModel< List<TypeA>> { >> public List<TypeA> load(){ >> ... do the load ... >> return ... >> } >> } >> >> TypeAModel model = new TypeAModel(); >> DropDownChoice< TypeA> ddc = new DropDownChoice<TypeA>("id", model ); >> >> which gets complained about... in this case the generic def is >> DropDownChoice<List<? extends T>> >> >> I think the problem is that the generic def of the class should actually be >> DropDownChoice<List<T>> because you are already identifying the type when >> you create a new instance. >> >> Now... my generics are a bit hazy at this level, because I can understand >> why it was done that way... does anyone with more generics experience know >> what it should be? Is this a bug that needs filing? >> >> - Brill >> >> >> >> On 26-Feb-09, at 6:03 PM, Kaspar Fischer wrote: >> >> On 26.02.2009, at 22:52, Brill Pappin wrote: >>> >>> For some reason the DropDownChoice component doesn't have the same >>>> generics as ListView and it will not accept a model that listview will, >>>> despite its saying that it will accept an IModel. >>>> >>>> Is anyone else having that sort of trouble with DropDownChoice? >>>> >>>> - Brill >>>> >>> >>> Can you give us more information on what exactly is not working for you? >>> >>> DropDownChoice indeed does accept a model, see for instance the example in >>> the class description at >>> >>> >>> http://wicket.apache.org/docs/1.4/org/apache/wicket/markup/html/form/DropDownChoice.html >>> >>> This works for me. >>> >>> Kaspar >>> >>> -- >>> >>> <!-- HTML: --> >>> <select wicket:id="site"> >>> <option>site 1</option> >>> <option>site 2</option> >>> </select> >>> <ul> >>> <li wicket:id="site2"><wicket:container wicket:id="sitename"/></li> >>> </ul> >>> >>> // Code >>> List SITES = Arrays.asList(new String[] { >>> "The Server Side", "Java Lobby", "Java.Net" >>> }); >>> form.add(new DropDownChoice("site", SITES)); >>> form.add(new ListView("site2", SITES) >>> { >>> @Override >>> protected void populateItem(ListItem item) >>> { >>> item.add(new Label("sitename", item.getModel())); >>> } >>> }); >>> >>> >>> --------------------------------------------------------------------- >>> 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] >> >> > ? extends --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
