MIDRANGE dot COM Mailing List Archive



Home » JAVA400-L » September 2009

Re: casting error on ArrayList



fixed

Thinking about it, I'm not sure how you could do it. You would have to
instantiate a type, which you can't do in generics. So this would be the
only way to do it.

I guess the reason. There is no way to do a:
T[] array = new T[list.size()];

You can't instantiate it so, I'm not sure any other way. In fact, I'm real
curious now to see how they do it at all.

--
James R. Perkins
http://twitter.com/the_jamezp


On Tue, Sep 15, 2009 at 11:56, Thorbjoern Ravn Andersen <ravn@xxxxxxxxxx>wrote:

James Perkins skrev:
Now, all that being said if you still need to return an array all you
need
to do is rs.toArray(new String[0]). This has to do with generics. The
default List.toArray() method will only return an array of objects. The
List.toArray(T[]) is used to return the generic type. Without looking at
the
code I couldn't tell you why it's designed like that, but Joshua Bloch
had a
lot to do with the Collections library, so I trust there may be a good
reason.

This is actually quite old - I believe it was introduced in Java 1.2 -
and the compiler had no way of letting the toArrary() method know what
type is on the left side of the assignment. Is this easier these days
with generics (still learning).

--
Thorbjørn Ravn Andersen "...plus... Tubular Bells!"

--
This is the Java Programming on and around the iSeries / AS400 (JAVA400-L)
mailing list
To post a message email: JAVA400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/java400-l.







Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2014 by MIDRANGE dot COM and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available here. If you have questions about this, please contact