Wie konvertiert man List <T> nach Array t [] (für primitive Typen) mit der generischen Methode?

Ich mache einige Tests mit generischen Methoden und möchte die beiden folgenden Methoden (convertFloatListToArray und convertShortListToArray) in nur eine (convertListToArray) umwandeln:

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;
    }
}

Aber wenn ich versuche, Generika zu verwenden, wie unten, habe ich einige Fehler:

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;
    }
}

Ich kann Java-Einschränkungen für Generika verstehen, aber ich frage mich, ob jemand eine Lösung mit der generischen Methode kennt, die ich nicht sehe.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage