Пытаясь понять, смогу ли я очистить часть своего математического кода, в основном матричного кода, я пытаюсь использовать некоторые Java Generics. У меня есть следующий метод:
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;
}
Строка retVal [i] [j] = 0 - та, которая вызывает у меня головную боль. Цель этой строки - инициализировать массив с представлением T, равным 0. Я попытался сделать с ним все что угодно: (T определяется в классе как T расширяет Number)
retVal[i][j] = (T)0;
retVal[i][j] = new T(0);
Единственное, что работает, это
retVal[i][j] = (T)new Object(0);
Это не то, что я хочу.
Возможно ли это? Есть ли более простой способ представления матрицы NxM любого типа числа (включая потенциально BigDecimal), или я застрял?