我得到這個方法乘2個矩陣:空指針訪問
public static AbstractMatrix multiplication(AbstractMatrix m1, AbstractMatrix m2) {
AbstractMatrix result = null;
int sum=0;
if (m1.getNbc() == m2.getNbl()) {
for(int c=0;c<m1.getNbl();c++){
for(int d=0;d<m2.getNbc();d++){
for(int k=0;k<m1.getNbc();k++){
sum=somme+m1.getValeur(c, k)*m2.getValeur(k, d);
}
result.setValeur(c, d, sum);
sum=0;
}
}
}
return result;
}
我得到一個:
空指針訪問變量的結果只能是空
在此位置:result.set()
。我知道問題出在AbstractMatrix result=null;
,但AbstractMAtrix
是一個抽象類,所以我不能實例化它(new AbstractMatrix
)。
我該如何解決這個問題?
您是否嘗試過實例化任何可以擴展抽象類結果的類? – Idos
實例化沒有問題,我有,MapMatrix,2DMatrix和是啊,所有這些工作,但在這個方法igot的參數放在AbstractMatrix – Pika
有一件事你可以做的是將接口更改爲'公共靜態void multiplication(AbstractMatrix m1,AbstractMatrix m2,AbstractMatrix r)''並且從你調用'multiplication'的地方做'r = new SomeMatrixType(),因爲如果我的答案幫助了你,你知道這個類的結果應該屬於 – cobarzan