<?> is appropriate.
Unless you want to parameterize the method. But otherwise, yes, <?> is
the right choice.
List<Object> says it's a list of objects. It can only be assigned to a
to list of objects.
List<?> says it's a list of something, but you don't know what.
Those are two slightly different statements.
For example:
List<Object> foo1 = new ArrayList<Object>(); //legal
List<?> foo2 = new ArrayList<Object>(); //also legal.
List<Object> foo3 = new ArrayList<Persistent>(); //illegal; you'll get
a compile-time error.
List<?> foo4 = new ArrayList<Persistent>();//this is legal.
other comments...
foo1.add(somePersistentObject); will be legal.
foo4.add(somePersistentObject) will NOT be legal, because foo4 is of
wildctionard.
The other option, as i mentioned, is to parameterize your method...
public <T> List<T> getSomeCollection() { }
Or even
public <T extends Persistent> List<T> getSomeCollection();
Robert
On Nov 18, 2007, at 11/189:08 AM , Andrus Adamchik wrote:
> Didn't find an answer for this particular case in the articles below
> (although they were informative otherwise)... Looking at the JDK's
> own classes, I see a few of "Collection<?> getSomething()" methods
> in various places.
>
> Andrus
>
>
> On Nov 16, 2007, at 7:34 PM, Aristedes Maniatis wrote:
>
>>
>> On 17/11/2007, at 11:19 AM, Andrus Adamchik wrote:
>>
>>> I have no idea. I am just overwhelmed with millions of Eclipse
>>> warnings :-)
>>
>>> Anyone else has a reference?
>>>
>>> Andrus
>>
>>
>> I found these articles the best for tips and tricks when I was
>> first working on generics:
>>
>> http://www.onjava.com/pub/a/onjava/excerpt/javaian5_chap04/index.html
>> http://www.ibm.com/developerworks/java/library/j-jtp01255.html
>>
>>
>> Ari
>>
>>
>> -------------------------->
>> ish
>> http://www.ish.com.au
>> Level 1, 30 Wilson Street Newtown 2042 Australia
>> phone +61 2 9550 5001 fax +61 2 9550 4001
>> GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A
>>
>>
>>
>
This archive was generated by hypermail 2.0.0 : Sun Nov 18 2007 - 10:22:24 EST