I see... but this would i think because Bar "is a" Foo:

class Bar exends Foo {}
List<? extends Foo> list = ...
list.add(new Bar());

Anyway, what your saying is that the generics choice was intentional?

- Brill



On 27-Feb-09, at 3:19 PM, Igor Vaynberg wrote:

list<? extends string> stings=...
strings.add("asd"); <== wont compile

-igor

On Fri, Feb 27, 2009 at 11:13 AM, Adriano dos Santos Fernandes
<[email protected]> wrote:
What do you mean with "read only" here?


Adriano


Igor Vaynberg escreveu:

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




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

Reply via email to