Я хотел бы взять переданный список, который, как я знаю, является однородным и из него создает массив того же типа, что и элементы внутри него.
Что-то вроде...
List<Object> lst = new ArrayList<Object>;
lst.add(new Integer(3));
/// somewhere else ...
assert(my_array instanceof Integer[]);