Вам нужно передать массив CustomObject
, чтобы получить его обратно. Вызов ArrayList.toArray()
без параметров возвращает Object[]
, но параметризованная версия T[] ArrayList<T>.toArray(T[])
возвращает то, что вы ожидаете. Если вы правильно определите размер массива, который вы передаете в качестве параметра, то вызов будет использовать массив, который вы передаете, а не выделять другой, например
ArrayList<CustomObject> foo;
//...
CustomObject[] bar = foo.toArray(new CustomObject[foo.size()]);