In einem Versuch zu sehen, wenn ich einige meiner mathematischen Code, meist Matrix Zeug bereinigen kann, versuche ich, einige Java Generics zu verwenden. Ich habe die folgende Methode:
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;
}
Die Zeile retVal[i][j] = 0 ist diejenige, die mir Kopfschmerzen bereitet. Das Ziel der Zeile ist es, das Array mit der T-Darstellung von 0 zu initialisieren. Ich habe versucht, alle möglichen Dinge damit zu tun: (T ist in der Klasse als T extends Number definiert)
retVal[i][j] = (T)0;
retVal[i][j] = new T(0);
Das Einzige, was funktioniert, ist
retVal[i][j] = (T)new Object(0);
Das ist nicht das, was ich will.
Ist dies möglich? Gibt es eine einfachere Möglichkeit, eine NxM-Matrix eines beliebigen Zahlentyps (einschließlich möglicherweise BigDecimal) darzustellen, oder komme ich nicht weiter?