Como converter Lista <T> para Matriz t [] (para tipos primitivos) usando o método genérico?

Estou fazendo alguns testes com métodos genéricos e gostaria de transformar esses dois métodos abaixo (convertFloatListToArray e convertShortListToArray) em apenas um (convertListToArray):

public class Helper{
    public static float[] convertFloatListToArray(List<Float> list){
        float[] array = new float[list.size()];

        for(int i = 0; i<list.size(); i++){
            array[i] = list.get(i);
        }

        return array;
    }

    public static short[] convertShortListToArray(List<Short> list){
        short[] array = new short[list.size()];

        for(int i = 0; i<list.size(); i++){
            array[i] = list.get(i);
        }

        return array;
    }
}

Mas quando tento usar genéricos, como abaixo, tenho alguns erros:

public class Helper{
    public static <T, E> T convertListToArray(List<E> list){
        T array = new T[list.size()];

        for(int i = 0; i<list.size(); i++){
            array[i] = list.get(i);
        }

        return array;
    }
}

Eu posso entender as limitações de java sobre genéricos, mas me pergunto se alguém conhece alguma solução, usando o método genérico, que não estou vendo.

questionAnswers(1)

yourAnswerToTheQuestion