行列を作成するカスタム クラスを作成しようとしています。とりわけ、すべてのセルを加算または乗算する操作を実行します。ただし、ジェネリックを使用して、行列を任意の型の数値 (float、double、int など) にできるようにしたいので、次のようにクラスを設定しました。
public class Matrix<num>
初期化時に、このクラスのインスタンス化により、ユーザーが指定したデータに基づいてマトリックスが作成され、インスタンスの .matrix 変数に格納されます。さて、すべてのセルを合計したいコードでは、次のようにします。
public num addMatrices(num[][] toAdd){
num result;
if (toAdd.length != this.rows && toAdd[0].length != this.columns){
System.out.println("Matrix mismatch. Try Again.");
return toAdd[0][0];
}
for (int i=0; i<rows; i++)
for (int j=0; j<rows; j++){
result = this.matrix[i][j] + toAdd[i][j];
}
}
しかし、私は複数の問題に直面しています。まず、result をゼロに初期化できないため、+= 操作を実行するのが難しくなります。次に、2 つの行列のセルを追加しようとすると、コンパイラは + 演算子が型 num に対して未定義であると通知します。
ジェネリックの要点はキャッチオール型を持つことだと思っていたので、ある場合は float を使用し、別の場合は int を使用することができましたが、+ のような演算子の型を指定する必要がある場合、どこに利点があるのか わかりません入って来る...