Generisches Array



  • Hallo, ich habe folgende generische Methode für einen Sortieralgorithmus:

    public <T extends Comparable<? super T>> 
    void sort(T[] array) {
        // ...
    }
    
    Integer[] testcase = new Integer[]{12,...,22};
    myinstance.sort(testcase);
    

    Darin möchte ich Array von Ts erstellen:

    // klar: geht nicht
    T[] temp = new T[size];
    
    // Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Comparable;
    T[] temp = (T[]) new Object[size];
    
    // selbe Exception;
    T[] temp = (T[]) Array.newInstance(array.getClass(), size);
    

    Wie mach ich das? 😞



  • public <T extends Comparable<? super T>>
    void sort(T[] array) 
    {
        //nothing to sort? leave the method
        if(array.length == 0)
            return;
    
        T[] temp = (T[]) Array.newInstance(array[0].getClass(), array.length);
    }
    

    müsste gehen


Log in to reply