试图看看我是否可以清理我的一些数学代码,主要是矩阵的东西,我试图使用一些Java泛型.我有以下方法:
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;
}
Run Code Online (Sandbox Code Playgroud)
retVal [i] [j] = 0行是引起头痛的行.该行的目标是使用T表示为0初始化数组.我试图用它做各种各样的事情:(T在类中被定义为T extends Number)
retVal[i][j] = (T)0;
retVal[i][j] = new T(0);
Run Code Online (Sandbox Code Playgroud)
唯一有效的是
retVal[i][j] = (T)new Object(0);
Run Code Online (Sandbox Code Playgroud)
这不是我想要的.
这可能吗?有没有更简单的方法来表示任何类型的数字的NxM矩阵(包括可能的BigDecimal),还是我被困?