マトリックスを操作するジェネリック クラスの作成に取り組んでいます。しかし、ここに問題があります。加算演算を実装すると、「二項演算子 '+' の不適切なオペランド型」が発生します。
次のように述べています。
最初の型: オブジェクト 2 番目の型: T (T は型変数): T extends Object クラスで宣言された Matrix
追加を行う方法はありますか?
ここに私のコードがあります:
public class Matrix<T> {
private T tab[][];
public Matrix( T tab[][])
{
this.tab = (T[][])new Object[tab.length][tab[0].length];
for(int i = 0; i < tab.length; i++){
System.arraycopy(tab[i], 0, this.tab[i], 0, tab.length);
}
}
public Matrix(int row, int column)
{
this.tab = (T[][])new Object[row][column];
}
//other constructors...
public Matrix addition(Matrix otherMatrix)
{
Matrix tmp = new Matrix(otherMatrix.getRowLen(), otherMatrix.getColLen());
for(int i = 0; i < tab.length; i++){
for(int j = 0; j < tab[0].length; j++){
//the line with the error is below
tmp.setElement(i, j, otherMatrix.getElement(i, j) + tab[i][j]);
}
}
return tmp;
}
public int getRowLen(){
return tab.length;
}
public int getColLen(){
return tab[0].length;
}
public void setElement(int i, int j, T value){
tab[i][j] = value;
}
public void setElement( T tab[][])
{
this.tab = (T[][])new Object[tab.length][tab[0].length];
for(int i = 0; i < tab.length; i++){
System.arraycopy(tab[i], 0, this.tab[i], 0, tab.length);
}
}
public T getElement(int i, int j){
return tab[i][j];
}
}
前もって感謝します !