Określanie typu ogólnego w java z obiektu Class

Dlaczego tak się dzieje:

    Class<? extends Number> type = Integer.class;
    ArrayList<type> = new ArrayList<>();

?

Czy nie istnieje sposób utworzenia instancji klasy określonego typu, podanej obiektowi klasy?

Oczywiście nigdy bym tego nie zrobił bezpośrednio, to tylko przykład pokazujący, co jest potrzebne. W rzeczywistym kodzie, którego potrzebuję, nie znam nazwy typu. Na przykład

    public void createAList(Class<? extends Number> type)  
{
    ArrayList<type> toReturn = new ArrayList<>();
    return toReturn;
}

questionAnswers(7)

yourAnswerToTheQuestion