ciao a tutti,
ho creato una classe Utilities per la mia applicazione dove vado a mettere vari metodi statici per fare delle operazioni varie, che non riesco ad accorpare ad altre classi. Ho creato questo metodo

codice:
public static <T> T[] arrayRange(T[] A, Interval interval)
    {
        T[] range = (T[])new Object[interval.length()];

        for(int i=0;i<range.length;i++)
        {
            range[i] = A[(i+interval.getFrom())%interval.getMax()];
        }
        
        return range;
    }
il funzionamento è semplice: prende un range di un array più lungo. Lo so che c'è il metodo copyRange sulla classe Arrays, ma questo funziona solo se from<to (io posso avere casi in cui from>to, poiché gli array sono circolari).
il metodo funziona bene, ma c'è un solo problema quando la richiamo. Ecco un caso

PolarPoint [] subsetBorderA = Utilities.arrayRange(bordersA,mA);
ovviamente bordersA è di tipo PolarPoint[].
Ecco il problema: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lmelecon.algorithm.xmath.PolarPoint;

Perché a compilation-time nessuna lamentela, ma a run-time questa?!?! Neanche mettendo un cast esplicito a PolarPoint[] riesco ad arginare il problema.
soluzioni? Vi ringrazio anticipatamente