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

Reply via email to