Есть 2 функции toArray () .
Object[] toArray()
Returns an array containing all of the elements in this list in the correct order.
<T> T[] toArray(T[] a)
Returns an array containing all of the elements in this list in the correct order;
the runtime type of the returned array is that of the specified array.
Вы используете первую, которая должна возвращать Object[]
, и она делает это.Если вы хотите получить правильный тип, используйте вторую версию:
things.toArray(new Thing[things.length]);
или если вы не хотите тратить больше места на new Thing[things.length]
, просто измените цикл на:
Thing thing = null;
for (Object o : someInstanceOfBlahBlah.getThings())
{
thing = (Thing) o;
// some unrelevant code
}