In einem Versuch zu sehen, ob ich etwas von meinem Math-Code, meist Matrix-Zeug, aufräumen kann, versuche ich, einige Java-Generics zu verwenden. Ich habe die folgende Methode:Java Generics und Zahlen
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 Linie retVal [i] [j] = 0 ist derjenige mir Kopfschmerzen verursacht. Das Ziel der Linie ist das Array mit der T Darstellung von 0. Ich habe versucht, zu initialisieren, alle möglichen Dinge mit ihm zu tun: (T in der Klasse definiert ist als T Nummer erstreckt)
retVal[i][j] = (T)0;
retVal[i][j] = new T(0);
Die einzige Sache, die funktioniert, ist
retVal[i][j] = (T)new Object(0);
Welches ist nicht was ich will.
Ist das möglich? Gibt es einen einfacheren Weg, um eine NxM-Matrix irgendeiner Art von Nummer (einschließlich möglicherweise BigDecimal) darzustellen, oder stehe ich fest?
Ich habe nicht viel zu dieser Diskussion hinzufügen, aber danke für die Bereitstellung einer Frage, die so große Antworten provoziert. Ich bin nicht glücklich mit der Implementierung von Generika von Java, aber ich verstehe sie jetzt besser. –