Nel tentativo di vedere se riesco a ripulire un po 'del mio codice matematico, principalmente di matrice, sto cercando di utilizzare Java Generics. Ho il seguente metodo:Java Generics e numeri
private <T> T[][] zeroMatrix(int row, int col) {
T[][] retVal = (T[][])new Object[row][col];
for(int i = row; i < row; i++) {
for(int j = col; j < col; j++) {
retVal[i][j] = 0;
}
}
return retVal;
}
La linea retVal [i] [j] = 0 è quello mi ha causato mal di testa. L'obiettivo della linea è per inizializzare l'array con la rappresentazione T 0. ho tentato di fare ogni sorta di cose con esso: (T è definito nella classe come T estende Number)
retVal[i][j] = (T)0;
retVal[i][j] = new T(0);
Il l'unica cosa che funziona è
retVal[i][j] = (T)new Object(0);
Quale non è quello che voglio.
È possibile? C'è un modo più semplice per rappresentare una matrice NxM di qualsiasi tipo di numero (incluso potenzialmente BigDecimal) o sono bloccato?
Non ho molto da aggiungere a questa discussione, ma grazie per aver fornito una domanda che ha provocato risposte così grandiose. Non sono soddisfatto dell'implementazione dei generici da parte di Java, ma ora li capisco meglio. –